java配列から要素を削除するにはどうすればよいですか
Java 配列から要素を削除するには、以下の方法のいずれかを使用します。
- System.arraycopy()メソッドを利用する:まず、元配列より1つ小さいサイズの新しい配列を作成する。次に、System.arraycopy()メソッドを使用して元配列から保持したい要素を新しい配列にコピーし、削除する要素は省略する。最後に、新しい配列を元配列に代入する。以下にサンプルコードを示します。
public static int[] removeElement(int[] arr, int index) {
int[] newArr = new int[arr.length - 1];
System.arraycopy(arr, 0, newArr, 0, index);
System.arraycopy(arr, index + 1, newArr, index, arr.length - index - 1);
return newArr;
}
用例:
int[] arr = {1, 2, 3, 4, 5};
int indexToRemove = 2;
arr = removeElement(arr, indexToRemove);
System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 4, 5]
- 配列から ArrayList へ変換し、ArrayList の remove() メソッドで指定したインデックスの要素を削除し、その後 ArrayList から配列へ変換します。
public static int[] removeElement(int[] arr, int index) {
List<Integer> list = new ArrayList<>();
for (int i : arr) {
list.add(i);
}
list.remove(index);
int[] newArr = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
newArr[i] = list.get(i);
}
return newArr;
}
使用例:
int[] arr = {1, 2, 3, 4, 5};
int indexToRemove = 2;
arr = removeElement(arr, indexToRemove);
System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 4, 5]
ArrayListは、操作のたびに配列とArrayList間の変換が必要なため、パフォーマンス上のオーバーヘッドが発生することがあります。配列から要素を削除する頻度が高い場合は、配列の代わりにArrayListの使用を検討してください。