[java] 求2个集合的交 差 并集

时间:2021-01-16 20:55:18

要求2个集合的交 差 并集。

set集合,如下

 import java.util.HashSet;
import java.util.Set; public class SetTest {
public static void main(String[] args) {
Set<String> set1=new HashSet<String>();
Set<String> set2=new HashSet<String>();
Set<String> result=new HashSet<String>(); set1.add("a");
set1.add("b");
set1.add("c");
set1.add("e");
set1.add("d"); set2.add("a1");
set2.add("b1");
set2.add("c1");
set2.add("e");
set2.add("d"); result.clear();
result.addAll(set1);
result.retainAll(set2);
System.out.println("交集:"+result); result.clear();
result.addAll(set1);
result.removeAll(set2);
System.out.println("差集:"+result); result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.println("并集:"+result); }
}

list集合方法相同,代码如下

 import java.util.ArrayList;
import java.util.List; public class ListTest {
public static void main(String[] args) {
List<String> list1=new ArrayList<String>();
List<String> list2=new ArrayList<String>();
List<String> result=new ArrayList<String>(); list1.add("a");
list1.add("b");
list1.add("c");
list1.add("e");
list1.add("d"); list2.add("a1");
list2.add("b1");
list2.add("c1");
list2.add("e");
list2.add("d"); result.clear();
result.addAll(list1);
result.retainAll(list2);
System.out.println("交集:"+result); result.clear();
result.addAll(list1);
result.removeAll(list2);
System.out.println("差集:"+result); result.clear();
result.addAll(list1);
result.addAll(list2);
System.out.println("并集:"+result);
} }

另外,addAll(),removeAll(),retainAll()三种方法的返回值都是Boolean值,而不是集合类型,需要注意!