removeSomePoints という名前のメソッドを作成します。このメソッドはポイントの配列を取り、元の配列と同じポイントの新しい配列を返しますが、x 座標と y 座標の差が 20 未満のすべてのポイントを削除します。つまり、返される配列は、元の配列よりもサイズが小さい可能性があります。このメソッドは、元の配列をそのままにしておく必要があります。明確にするために: 次のポイントのいずれかが元の配列にあった場合、返される配列には含まれません。
100 90 (x と y の差は 10)
90 100 (x と y の差は 10)
3 22 (x と y の差は 19)
一方、返される配列には、次のポイントのいずれかが含まれます。
100 80 (x と y の差は 20)
80 100 (x と y の差は 20)
2 25 (x と y の差は 23)
私のコード:
public static Point[] removeSomePoints(Point[] arr)
{
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (Math.abs(arr[i].getX() - arr[i].getY()) > 19) {
count++;
}
}
Point[] finalArr = new Point[count];
for (int i = 0; i < finalArr.length; i++) {
if (Math.abs(arr[i].getX() - arr[i].getY()) > 19) {
finalArr[i] = arr[i];
}
}
return finalArr;
}
何が問題なのか理解できないようです。配列を返していますが、何も変更しません。