java比对两个list<对象>,找出list1与list2不同的值
时间: 2023-08-15 20:07:56 浏览: 96
Java比较两个List的值是否相等的方法
你可以按照以下步骤比对两个 `List`:
1. 遍历 `list1` 中的每个元素
2. 对于每个元素,在 `list2` 中查找是否存在相同的元素
3. 如果 `list2` 中不存在相同的元素,则说明当前元素是 `list1` 中独有的,将其加入结果集
4. 如果 `list2` 中存在相同的元素,则比较两个元素是否相等
5. 如果两个元素不相等,则说明当前元素在 `list1` 和 `list2` 中都存在,但是值不同,将其加入结果集
以下是一个示例代码:
```java
public static <T> List<T> getDifference(List<T> list1, List<T> list2) {
List<T> result = new ArrayList<>();
for (T obj1 : list1) {
boolean exists = false;
for (T obj2 : list2) {
if (obj1.equals(obj2)) {
exists = true;
break;
}
}
if (!exists) {
result.add(obj1);
} else {
// 如果元素存在,但是值不同,则也将其加入结果集
T obj2 = list2.get(list2.indexOf(obj1));
if (!obj1.equals(obj2)) {
result.add(obj1);
}
}
}
return result;
}
```
你可以将待比对的两个 `List` 传递给 `getDifference` 方法,它将返回 `list1` 中与 `list2` 不同的元素列表。
阅读全文