如果我用这个数据初始化一个人对象数组
myPeople[0] = new Person("Alice", "Foo", 22 );
myPeople[1] = new Person("Alice", "Foo", 22 );
myPeople[2] = new Person("Bob", "Bar", 2);
myPeople[3] = new Person("Joe", "Blogs", 64);
myPeople[4] = new Person("Jane", "Joe", 42);
我想用我的方法返回重复的数量。在这种情况下,它将是 2,因为 Person 0 和 1 是彼此的重复项。如果我要将对象 2 更改为相同,它应该返回 3。目前我的方法返回 1 和两个重复项,4 和三个。
有问题的方法:
public static int searchForClones(Person[] array){
int numberOfClones=0;
for(int j =0; j<array.length-1; j++)
{
String tmp1 = array[j].getFirstName(); //Store first element of the array in tmp so it can be compared
String tmp3 = array[j].getLastName();
for(int i = 0; i<array.length-1; i++) //Loop to compare for every element in the array
{
String tmp2 = array[i].getFirstName(); //Do the same for the next element
String tmp4 = array[i].getLastName();
if(i!=j) //If i an j aren't the same element
{
if(tmp1.equals(tmp2) && tmp3.equals(tmp4) //and if they match
&& array[i].getAge()==array[i+1].getAge())
{
numberOfClones++; //increment the number of clones
}
}
}
}
return numberOfClones;
}
我真的很感激任何帮助,因为我认为唯一的问题是我增加克隆数量的方式。也许我需要检查一些东西并在那之后增加一个适当的数字?