我正试图在Java 8中获得最大值。
它由List<Map<String,Object>>
组成。
在Java 8之前:
int max = 0;
for(Map<String, Object> map : list) {
int tmp = map.get("A");
if(tmp>max)
max=tmp;
}
这将显示最大数量的键“A”。
我试图在Java 8中做同样的事情,但我无法获得最大值。
答案 0 :(得分:10)
如果预期值为整数,我会将Map
的类型更改为Map<String,Integer>
:
List<Map<String,Integer>> list;
然后你可以找到最大值:
int max = list.stream()
.map(map->map.get("A"))
.filter(Objects::nonNull)
.mapToInt(Integer::intValue)
.max()
.orElse(someDefaultValue);
您可以使用getOrDefault
代替get
来缩短null
值,以缩短int max = list.stream()
.mapToInt(map->map.getOrDefault("A",Integer.MIN_VALUE))
.max();
.orElse(someDefaultValue);
的价值:
{{ csrf_field() }}