このデータで人物オブジェクトの配列を初期化すると
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);
メソッドに重複の数を返したいです。この場合、Person 0 と 1 は互いに重複しているため、2 になります。オブジェクト 2 を同じになるように変更すると、3 が返されます。現時点では、メソッドは 2 つの重複で 1 を返し、3 つの重複で 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;
}
唯一の問題はクローンの数を増やす方法だと思うので、本当に助けていただければ幸いです。多分私は何かをチェックし、その後適切な数だけインクリメントする必要がありますか?