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