我在Java中有以下3个列表
List<Integer> list1 = query1MysqlRepository.getprocessIds();
List<Integer> list2 = query2MysqlRepository.getprocessIds();
List<Integer> list3 = query3MysqlRepository.getprocessIds();
我想将以上三个Integer List
合并为一个集合,以使该集合不包含任何重复的值
Collection = list1 + list2 + list3
请在这里建议可以使用哪些收藏集。
答案 0 :(得分:1)
您可以使用不允许重复的Set
,只需使用addAll()
方法将List
的所有元素添加到Set
:
List<Integer> arr1 = new ArrayList<>(Arrays.asList(1,2,3));
List<Integer> arr2 = new ArrayList<>(Arrays.asList(2,3,4));
List<Integer> arr3 = new ArrayList<>(Arrays.asList(4,5,6));
Set<Integer> hashSet = new HashSet<>();
hashSet.addAll(arr1);
hashSet.addAll(arr2);
hashSet.addAll(arr3);
hashSet.forEach(System.out::println);
输出:
1
2
3
4
5
6
答案 1 :(得分:1)
List<Integer> result = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.distinct()
.collect(Collectors.toList());
或,如果您想避免以后再重复添加:-
Set<Integer> result = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.collect(Collectors.toSet());