java 两个对象集合对比按指定属性取不同
时间: 2023-05-03 14:05:59 浏览: 136
Java中对于两个对象集合按照指定属性进行比较并取出不同的元素,可以使用以下的方式:
1. 定义两个集合对象,分别存储两个对象集合。
2. 定义一个空的List集合,用于存储比较后不同的元素。
3. 遍历第一个集合对象的每一个元素,然后通过指定属性的getter方法,获取指定属性的值。
4. 判断第二个集合对象中是否存在与第一个元素相同的指定属性的值。如果不存在,则将该元素添加到List集合中,表示该元素是第一个集合中独有的元素。
5. 反之,则不做任何处理。
6. 遍历第二个集合对象的每一个元素,按照步骤3-5的方式进行比较,获取第二个集合中独有的元素。
7. 最后将两个集合中独有的元素合并成一个集合,就得到了按照指定属性比较的两个对象集合中不同的元素。
示例代码如下:
```
List<Object> list1 = ... // 第一个对象集合
List<Object> list2 = ... // 第二个对象集合
List<Object> diffList = new ArrayList<>(); // 存储不同元素的List集合
for (Object obj1 : list1) {
String attr = obj1.getAttr(); // 获取指定属性
boolean exists = false;
for (Object obj2 : list2) {
if (attr.equals(obj2.getAttr())) { // 判断第二个集合中是否存在相同的属性值
exists = true;
break;
}
}
if (!exists) { // 如果不存在,则添加到List集合中
diffList.add(obj1);
}
}
for (Object obj2 : list2) { // 重复上面的操作,获取第二个集合中独有的元素
String attr = obj2.getAttr();
boolean exists = false;
for (Object obj1 : list1) {
if (attr.equals(obj1.getAttr())) {
exists = true;
break;
}
}
if (!exists) {
diffList.add(obj2);
}
}
// 打印不同的元素集合
System.out.println(diffList);
```
这样就可以比较按照指定属性的两个对象集合,并得到不同的元素集合了。
阅读全文