您的位置:首页 > 编程语言 > Java开发

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

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

对象 Student 

属性 id,name

两个集合

1、List<Student> lists1 = new ArrayList<Student>();

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<Student> lists2 = new ArrayList<Student>();

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<list2.size();i++){

   

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

           

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

     }

}

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


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: