Java中两个对象数组,根据对象的某个字段判断两个数组的交集
时间: 2024-05-15 20:20:09 浏览: 115
可以使用HashSet来实现两个对象数组的交集,首先遍历第一个对象数组,将对象的某个字段值添加到HashSet中,然后遍历第二个对象数组,判断对象的某个字段值是否在HashSet中出现过,如果出现过,则将该对象添加到交集数组中。
示例代码如下:
```
class Person {
private String name;
private int age;
// getter、setter、构造方法等省略
}
public class Main {
public static void main(String[] args) {
Person[] arr1 = {new Person("Tom", 20), new Person("Jerry", 25), new Person("Mary", 30)};
Person[] arr2 = {new Person("Jack", 25), new Person("Jerry", 25), new Person("Lucy", 20)};
Set<Integer> set = new HashSet<>();
for (Person p : arr1) {
set.add(p.getAge());
}
List<Person> intersect = new ArrayList<>();
for (Person p : arr2) {
if (set.contains(p.getAge())) {
intersect.add(p);
}
}
System.out.println(intersect); // 输出 [Person(name=Jack, age=25), Person(name=Jerry, age=25)]
}
}
```
上述代码中,我们以Person对象的age字段为例,将arr1数组中所有Person对象的age值添加到HashSet中,并遍历arr2数组,如果arr2中的Person对象的age值在HashSet中出现过,则将该对象添加到交集数组中。
阅读全文