作者:捕鱼达人2502933245 | 来源:互联网 | 2022-11-30 18:37
1> ernest_k..:
通用类型不是协变的,因此您无法将a分配LinkedHashMap>
给a Map>
.
如果您只需要强制映射值LinkedHashSet
,则必须将映射声明为Map>
.
但是,这不应该是必要的,因为您可以map.put
使用以下子类型调用Set
:
Map> map = new LinkedHashMap<>();
map.put("key", new LinkedHashSet());
这仍然允许您编程到Set
界面.
这是使用流API的更简单的代码版本.
Date curretMOnthDate= getCurrentMonthDate();
Map> sortedNames = dataMap.entrySet().stream()
.map(e -> new AbstractMap.SimpleEntry>(e.getKey(),
e.getValue()
.entrySet()
.stream()
.filter(inner -> inner.getKey().equals(curretMonthDate))
.flatMap(subEntry -> subEntry
.getValue()
.entrySet()
.stream()
.map(Entry::getKey))
.collect(Collectors.toCollection(LinkedHashSet::new))))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue));