Java代码用两个字段对比两个list
时间: 2023-10-30 09:07:26 浏览: 40
假设有两个List,每个List中的元素都是一个自定义对象,该对象有两个字段,分别为fieldA和fieldB。现在需要比较这两个List中每个对象的fieldA和fieldB是否相等。
可以使用Java 8的Stream API来完成这个任务,代码如下:
```java
public boolean compareTwoLists(List<MyObject> list1, List<MyObject> list2) {
// 如果两个List的长度不同,直接返回false
if (list1.size() != list2.size()) {
return false;
}
// 使用Stream API遍历List中的每个对象,并逐一对比fieldA和fieldB是否相等
return IntStream.range(0, list1.size())
.allMatch(i -> Objects.equals(list1.get(i).getFieldA(), list2.get(i).getFieldA())
&& Objects.equals(list1.get(i).getFieldB(), list2.get(i).getFieldB()));
}
```
其中,Objects.equals()方法可以比较两个对象是否相等,包括当对象为null的情况。allMatch()方法会检查Stream中的所有元素是否都满足给定的条件,如果都满足,则返回true,否则返回false。IntStream.range()方法可以生成一个整数范围的Stream,用于遍历List中的每个对象。