List<Map<String, Integer>>求list元素和
时间: 2023-05-11 19:07:02 浏览: 109
可以使用Java 8的Stream API来求list元素和,代码如下:
List<Map<String, Integer>> list = new ArrayList<>();
int sum = list.stream()
.flatMap(map -> map.entrySet().stream())
.mapToInt(Map.Entry::getValue)
.sum();
System.out.println(sum);
这段代码会将list中的每个Map转换成一个Stream,然后将所有的entry合并成一个Stream,再将每个entry的value取出来,最后求和并输出。
相关问题
List<Map<String, Integer>>求元素和
可以使用Java 8的Stream API来求元素和,代码如下:
List<Map<String, Integer>> list = new ArrayList<>();
int sum = list.stream().flatMap(map -> map.values().stream()).mapToInt(Integer::intValue).sum();
System.out.println(sum);
这段代码会将List中的所有Map的value取出来,然后求和并输出。
List<Map<String, Integer>> list 倒序排序
在Java中,如果你有一个List<Map<String, Integer>>类型的列表,想要按照Map中的值(假设是Integer类型)倒序排序,你可以使用Collections.sort()方法配合自定义的Comparator。首先,你需要创建一个比较器(Comparator),然后将这个比较器传递给sort()。
```java
import java.util.*;
class ValueComparator implements Comparator<Map<String, Integer>> {
@Override
public int compare(Map<String, Integer> map1, Map<String, Integer> map2) {
return map2.values().stream().mapToInt(Integer::intValue).orElse(0)
- map1.values().stream().mapToInt(Integer::intValue).orElse(0);
}
}
public void sortList(List<Map<String, Integer>> list) {
Collections.sort(list, new ValueComparator());
}
```
这会按Map的值降序排列,如果两个Map有相同的最大值,则它们的相对顺序可能会保持不变,因为Collections.sort默认是稳定的。
阅读全文