前提需要明白List是引用类型,引用类型采用引用传递。
我们经常会遇到一些需求求集合的交集、差集、并集。例如下面两个集合:
List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");
List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");
0.求差集
例如,求List1中有的但是List2中没有的元素:
public static void test3(List list1, List list2) {
list1.removeAll(list2);
System.out.println(list1);
}
结果: [A]
1.求并集(不去重)---将一个集合全部加入另一个集合
public static void test(List list1, List list2) {
list1.addAll(list2);
System.out.println(list1);
}
结果: [A, B, B, C]
2.求并集(去重)
例如:求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]
3.求交集
例如:求List1和List2中都有的元素。
public static void test2(List list1, List list2) {
list1.retainAll(list2);
System.out.println(list1);
}
结果:[B]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。