如何从2个列表制作地图?

Yas*_*lha 6 java list java-8 java-stream

我有2 List<String>s,第一个代表所有项目的列表,第二个代表选定的项目。

因此,我Map<String, Boolean>将从这些列表中获得一个,其键都是list1的所有项,值是list2.contains(itemOfList1)truefalse)。

Map<String, Boolean> mapOfDataListTest = itemList.stream()
.collect(Collectors.toMap(key -> key, value -> true));
Run Code Online (Sandbox Code Playgroud)

And*_*lko 6

替换value -> true为lambda item -> list2.contains(item)或方法参考list2::contains

itemList.stream()
        .collect(Collectors.toMap(Function.identity(), list2::contains));
Run Code Online (Sandbox Code Playgroud)

并阅读@michalk的评论。

  • 是不是最好使用Set而不是List? (3认同)