以下是一个示例代码,演示了如何比较两个对象数组以获取不同的结果:
import java.util.ArrayList;
import java.util.List;
public class CompareArrays {
public static void main(String[] args) {
// 创建两个对象数组
Person[] array1 = { new Person("Alice", 25), new Person("Bob", 30), new Person("Charlie", 35) };
Person[] array2 = { new Person("Alice", 25), new Person("David", 40), new Person("Charlie", 35) };
// 调用compareArrays方法比较两个数组并获取不同的结果
List differentObjects = compareArrays(array1, array2);
// 输出不同的结果
System.out.println("不同的对象:");
for (Person person : differentObjects) {
System.out.println(person.getName() + " - " + person.getAge());
}
}
public static List compareArrays(Person[] array1, Person[] array2) {
List differentObjects = new ArrayList<>();
// 遍历第一个数组
for (Person person1 : array1) {
boolean found = false;
// 遍历第二个数组
for (Person person2 : array2) {
// 比较两个对象是否相等
if (person1.equals(person2)) {
found = true;
break;
}
}
// 如果第一个数组中的对象在第二个数组中找不到,则将其添加到结果列表中
if (!found) {
differentObjects.add(person1);
}
}
return differentObjects;
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
return age == person.age && name.equals(person.name);
}
}
这个示例创建了两个Person
对象数组,然后调用compareArrays
方法比较这两个数组,并返回不同的结果。compareArrays
方法遍历第一个数组中的每个对象,并在第二个数组中查找是否存在相同的对象。如果第一个数组中的对象在第二个数组中找不到,则将其添加到结果列表中。最后,打印出不同的结果。