这里用到list 的retainAll 方法:
public class ListDemoTest {
public static void main(String[] args) {
//获取两个集合的交集list、list1 ,结果保存到list
List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList<String>();
list.add("春天");
list.add("夏天");
list.add("秋天");
list.add("冬天");
list1.add("春天");
list1.add("夏天");
list1.add("秋天");
list1.add("冬天");
// 如果此 collection 由于调用而发生更改,则返回 true,否则返回false
// 如果两个相同则不发生改变所以结果:false
System.out.println(list.retainAll(list1)); //false
System.out.println(list); //[春天, 夏天, 秋天, 冬天]
System.out.println(list1);//[春天, 夏天, 秋天, 冬天]
}
}
在两个不同的时候就会发生改变
public class ListDemoTest {
public static void main(String[] args) {
//获取两个集合的交集list、list1 ,结果保存到list
List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList<String>();
list.add("春天");
list.add("夏天");
list.add("秋天");
list.add("冬天");
list1.add("春天");
list1.add("夏天");
list1.add("天");
//如果此 collection 由于调用而发生更改,则返回 true,否则返回false
System.out.println(list.retainAll(list1)); //true
// 发生改变的是list集合,list是两个集合的交际
System.out.println(list);//[春天, 夏天]
System.out.println(list1);//[春天, 夏天, 天]
}
}
如果没有交集就会清空
public class ListDemoTest {
public static void main(String[] args) {
//获取两个集合的交集list、list1 ,结果保存到list
List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList<String>();
list.add("春天");
list.add("夏天");
list.add("秋天");
list.add("冬天");
list1.add("春天1");
list1.add("夏天1");
list1.add("天");
//如果此 collection 由于调用而发生更改,则返回 true,否则返回false
System.out.println(list.retainAll(list1)); //true
System.out.println(list);//[]
System.out.println(list1);//[春天1, 夏天1, 天]
}
}