首先是List转Map<key,value>数据结构:
Map<String, Integer> result =
cloudStoreUserSearchInfoList.stream()
.collect(Collectors.toMap(CloudStoreUserSearchInfo::getSearchKey,
cloudStoreUserSearchInfo -> cloudStoreUserSearchInfo.getSearchType()));
这里会有个小坑,当你的key相同时,会抛出一个 java.lang.IllegalStateException: Duplicate key
解决办法,传入处理处理机制,当相同的key时,选择一个
Map<String, Integer> result =
cloudStoreUserSearchInfoList.stream()
.collect(Collectors.toMap(CloudStoreUserSearchInfo::getSearchKey,
cloudStoreUserSearchInfo -> cloudStoreUserSearchInfo.getSearchType(), (key1, key2) -> key1));
List转Map<key,Map<key,vaule>>数据结构:
Map<String, Map<String, Integer>> result =
cloudStoreUserSearchInfoList.stream()
.collect(Collectors.groupingBy(CloudStoreUserSearchInfo::getId,
Collectors.toMap(CloudStoreUserSearchInfo::getSearchKey,
cloudStoreUserSearchInfo -> cloudStoreUserSearchInfo.getSearchType())));
三层四层Map以此类推就可以了。