首先是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以此類推就可以了。