- 2008年1月10日 12:39
- プログラミング
-
JavaにはArrayListのような便利な配列クラスが存在します。
どうしても通常の配列を使わなければならない場合、どうすれば配列から指定した値を持つ要素を削除できるか考えてみました。
ソースコード
public class ArrayElementDeleteTest {
// 配列の要素数の定義
private static final int ELEMENT_NUM = 20;
// 配列から削除する要素の値の定義
private static final int DELETE_NUM = 10;
public static void main (String args[]) {
// 配列の作成
int[] array = new int[ELEMENT_NUM];
// 配列に0から19までの値を格納
for (int i = 0; i < array.length; i++) {
array[i] = i;
}
// 配列の各要素を表示
System.out.println("削除前の配列");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
// 配列から指定した値を持つ要素を削除
for (int i = 0; i < array.length; i++) {
if (array[i] == DELETE_NUM) {
// 要素数を一つ減らした配列を宣言
int[] temp = new int[array.length - 1];
System.arraycopy(array, 0, temp, 0, i);
System.arraycopy(array, i + 1, temp, i, array.length - i - 1);
array = temp;
break;
}
}
// 配列の各要素を表示
System.out.println("");
System.out.println("削除後の配列");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
実行結果
削除前の配列 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 削除後の配列 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19
まとめ
当たり前の事すぎて他の人にはあまり役に立たないかも・・・
もっと上手い方法があれば教えてください〜!
- Newer: Mac Bookのパームレストをキズ・汚れから守る「WRIST RUG set」を購入
- Older: 第2回Zohoオフ会のお知らせ