一.判断两个集合的元素是否相同
1)基本数据类型
public static void main(String[] args) {
List<Integer> list1=new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2=new ArrayList<Integer>();
list2.add(2);
list2.add(1);
list2.add(3);
if(list1.size() == list2.size() && list1.containsAll(list2)){
System.out.println("两个集合相同");
}else{
System.out.println("两个集合不相同");
}
}
2)对象类型
public static void main(String[] args) {
List<Person> list1=new ArrayList<Person>();
Person p1=new Person();
p1.setId(1);
p1.setAge(12);
p1.setName("张");
list1.add(p1);
List<Person> list2=new ArrayList<Person>();
Person p2=new Person();
p2.setId(1);
p2.setAge(12);
p2.setName("张");
list2.add(p2);
Person p3=new Person();
p3.setId(2);
p3.setAge(11);
p3.setName("张三");
list2.add(p3);
Set<Person> set=new HashSet<Person>();
//获取集合2中相同的数据
for (int i=0;i<list1.size();i++){
for (int j=0;j<list2.size();j++){
if(list1.get(i).getName().equals(list2.get(j).getName()) && list1.get(i).getAge()==list2.get(j).getAge()){
set.add(list2.get(j));
}
}
}
//将集合2中和集合1相同的数据移除掉,剩下不相同的数据,这样得到集合和集合1不相同的数据
for (Person p:set) {
list2.remove(p);
}
for (Person p:list2) {
System.out.println(p);
}
}
输出结果: