[英]How to convert List<Object> into List<Map<String,String>> in java8
[英]How to get max value in List<Map<String, Object>> at Java8
我試圖在 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 中做同樣的事情,但我無法獲得最大值。
如果值預期為整數,我會將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);
int max = listMap.stream()
.flatMap(c -> c.entrySet().stream())
.max(Comparator.comparing(Map.Entry::getValue)).get().getValue();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.