我们经常会遇到一些需求求集合的交集、差集、并集。例如下面两个集合:
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");
1:两个list去重合并
List<String> doctorDataDOS = Stream.of(list1,list2).flatMap(Collection::stream).distinct().collect(Collectors.toList());
2:求差集
例如,求List1中有的但是List2中没有的元素:
public static void test3(List list1, List list2) {
list1.removeAll(list2);
System.out.println(list1);
}
结果 : [A]
3:求并集(不去重)---将一个集合全部加入另一个集合
public static void test(List list1, List list2) {
list1.addAll(list2);
System.out.println(list1);
}
结果:[A, B, B, C]
4:求并集(去重)
例如:求List1和List2的并集,并实现去重。
思路是:先将list中与list2重复的去掉,之后将list2的元素全部添加进去。
public static void test1(List list1, List list2) {
list1.removeAll(list2);
list1.addAll(list2);
System.out.println(list1);
}
结果:[A, B, C]
5:求交集
例如:求List1和List2中都有的元素。
public static void test2(List list1, List list2) {
list1.retainAll(list2);
System.out.println(list1);
}
结果:[B]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)