Map<String, Map<String, List<String>>> tag2AllFunds = Maps.newHashMap();Comparator<String> comparator = Collator.getInstance(Locale.CHINA);tag2AllFunds.forEach((key, value) -> { value.entrySet().stream() .sorted(Comparator.comparing((Map.Entry<String, List<String>> entry) -> entry.getValue().size()) .reversed() .thenComparing(entry -> entry.getKey(), comparator)) .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue(), (v1, v2) -> v1, LinkedHashMap::new));}); 这段代码中entry.getKey() 和entry.getValue()在报红 请修改正确
时间: 2024-02-26 12:56:38 浏览: 87
List<map>多字段组合排序
5星 · 资源好评率100%
这段代码中,`entry.getKey()` 和 `entry.getValue()` 的报错可能是因为编译器无法推断出它们的类型。你可以尝试将其显示地指定为类型参数,例如:
```
Map<String, Map<String, List<String>>> tag2AllFunds = Maps.newHashMap();
Comparator<String> comparator = Collator.getInstance(Locale.CHINA);
tag2AllFunds.forEach((key, value) -> {
value.entrySet().stream()
.sorted(Comparator.comparing((Map.Entry<String, List<String>> entry) -> entry.getValue().size())
.reversed()
.thenComparing(entry -> entry.getKey(), comparator))
.collect(Collectors.toMap(
entry -> entry.getKey(),
entry -> entry.getValue(),
(v1, v2) -> v1,
LinkedHashMap<String, List<String>>::new
));
});
```
在 `LinkedHashMap::new` 中,我们指定了 `LinkedHashMap` 的类型参数为 `<String, List<String>>`,以匹配 `tag2AllFunds` 的类型。这样应该就可以消除报错了。
阅读全文