以下是一个比较两个对象数组并返回匹配项的解决方法的示例代码:
import java.util.ArrayList;
import java.util.List;
public class CompareArrays {
public static void main(String[] args) {
// 创建第一个对象数组
Person[] array1 = new Person[3];
array1[0] = new Person("Alice");
array1[1] = new Person("Bob");
array1[2] = new Person("Charlie");
// 创建第二个对象数组
Person[] array2 = new Person[4];
array2[0] = new Person("Bob");
array2[1] = new Person("David");
array2[2] = new Person("Alice");
array2[3] = new Person("Eve");
// 比较两个对象数组并返回匹配项
List matches = compareArrays(array1, array2);
// 输出匹配项
System.out.println("匹配项:");
for (Person person : matches) {
System.out.println(person.getName());
}
}
public static List compareArrays(Person[] array1, Person[] array2) {
List matches = new ArrayList<>();
for (Person person1 : array1) {
for (Person person2 : array2) {
if (person1.equals(person2)) {
matches.add(person1);
break;
}
}
}
return matches;
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
return name.equals(person.name);
}
@Override
public int hashCode() {
return name.hashCode();
}
}
在上面的示例代码中,我们创建了两个对象数组 array1
和 array2
,并在每个数组中填充了一些 Person
对象。然后,我们调用 compareArrays
方法来比较这两个数组,并返回匹配项的列表。在 compareArrays
方法中,我们使用两个嵌套的循环来遍历 array1
和 array2
,并使用 equals
方法来比较两个 Person
对象是否相等。如果两个对象相等,我们将匹配项添加到 matches
列表中。最后,我们在主方法中打印出匹配项的名称。
在这个示例中,我们假设 Person
类具有 name
字段,并重写了 equals
和 hashCode
方法来比较对象的相等性。你可以根据你的实际需求进行调整和修改。
上一篇:比较两个对象数组