list<map>怎么根据某个字段排序并修改值,用java
时间: 2024-02-05 11:13:01 浏览: 82
可以使用 `Collections.sort` 方法进行排序,结合自定义的比较器 `Comparator` 实现按照某个字段排序。然后对排序后的列表进行遍历,修改对应的值。
下面是示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Tom");
map1.put("age", 20);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Jerry");
map2.put("age", 18);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "Alice");
map3.put("age", 22);
list.add(map1);
list.add(map2);
list.add(map3);
// 按照age字段排序
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
return ((Integer) o1.get("age")).compareTo((Integer) o2.get("age"));
}
});
// 修改name字段值
for (Map<String, Object> map : list) {
map.put("name", map.get("name") + " updated");
}
// 输出结果
for (Map<String, Object> map : list) {
System.out.println(map);
}
}
}
```
输出结果:
```
{name=Jerry updated, age=18}
{name=Tom updated, age=20}
{name=Alice updated, age=22}
```
在上述代码中,我们首先创建了一个 `List<Map<String, Object>>` 类型的列表,并向其中添加了三个 `Map` 类型的元素,每个 `Map` 对象包含两个属性:`name` 和 `age`。
接着,我们使用 `Collections.sort` 方法对列表进行排序,指定了一个自定义的比较器,按照 `age` 字段进行排序。
最后,我们遍历排序后的列表,修改了 `name` 字段的值,然后输出了结果。
阅读全文