JAVA中如何取出两个不同List对象(对象一致)中所有不同的对象的集合

昨天开发的时候遇到一个需求,需要在两个不同的List对象中,取出所有不同的对象的集合,大家看的时候可能会觉得绕口,下面简单举例说明:

对象 Student 

属性 id,name

两个集合

1、List lists1 = new ArrayList();

Student student1 = new Student();

student1.setId(1):

student1.setName("1");


lists1.add(student1);


 
  

Student student2 = new Student();

student2.setId(2):

student2.setName("2");

lists1.add(student2);

2、List lists2 = new ArrayList();

Student student3 = new Student();

student3.setId(1):

student3.setName("1");

lists2.add(student3);

可以看到 list1 和 list2 集合中的对象是相同的,现在的需求是比较 list1 和 list2 取出所有不同的对象集合,也就是 student2

在这里我们主要用到的方法是重写Student类中的 equals 和 hashcode 方法。把属性 id 和 name作为比较的key,这样就可以实现了。

判断的时候可以这样操作:

通过循环的时候判断,我这里只是提供一种参考的是方式,以少的集合作为循环的集合

for(int i=0;i

   

    if(! lists1.contains(lists2.get(i))){

           

//把对应的对象加入到返回的结果集List中去就可以了

     }

}

以上就是我个人的心得,亲测可用。

 
  




你可能感兴趣的:(Java基础)