0

明確にしてみます。

私は持っている:

public static void main(String[] args) {
    int a[] = {5, 6 ,7 ,8 ,9 ,10};
    removeArray takeOff = new removeArray();
    takeOff.remove(3);

    for (int i = 0 ; i < a.length ; i++){
        System.out.print(" "+a[i]);
    }
}

それは印刷されるはずです:

5, 6, 7, 9, 10.

問題はremoveメソッド、どう書けばいいのか。私は持っている:

パブリック クラス removeArray {

public void remove(int index) {       

    if (index > 0) {
        System.arraycopy(testThatArray.a, 0, testThatArray.a, 0, index);
    }

    if (index < testThatArray.a.length - 1) {
        System.arraycopy(testThatArray.a, index + 1, testThatArray.a, index, testThatArray.a.length - index - 1);
    }

}

}

それでも、いいえ?

更新: 印刷しました5 6 7 9 10 10が、最後の値を削除するにはどうすればよいですか?

4

5 に答える 5

2

配列のインデックスまたは要素を削除することはできません。これは、メモリ内で既にサイズが設定されているため、delete を使用できませんが、2 つの値 { null または 0 } または既に取得していることを示す別の値を入れることができます。

于 2012-12-12T06:04:02.633 に答える
1

配列はサイズ変更できません。サイズ変更可能なコレクションが必要な場合は、 List<Integer>(など) を使用します。ArrayList<Integer>

それ以外の場合は、元の配列より 1 要素小さい配列のコピーを作成して、これを自分で実装する必要があります。次に、指定されたインデックスの値を除くすべての値を古い配列から新しい配列にコピーします。

于 2012-10-23T03:08:31.450 に答える
0

ArrayUtils#removeElementは、おそらくあなたが望むことをするでしょう。ただし、代わりにリストを使用することを検討してください。

于 2012-10-23T03:40:11.347 に答える
0

配列は固定長のセットです。値を削除することはできません。物事を追加したり削除したりしたくない場合は、List または ArrayList を使用します

于 2012-10-23T03:09:36.070 に答える
0

新しい配列を作成するか、実際の配列のサイズから 1 を引いたサイズでサイズを変更し、配列内のすべての値をループ処理して新しい配列を埋めますが、.remove メソッドで指定された値はスキップします。

于 2012-10-23T03:13:31.137 に答える