1

私は を持っていて、アンドロイドでメソッドArrayListを使用するつもりでしたが、私の質問は、次のインデックスで値を持つ を持っている場合、インデックスで削除すると、他のインデックスが増加しますか? 私が尋ねようとしていることを理解するための簡単な方法を次に示します。java.util.ArrayList.remove()ArrayList

アレイリストの開始:
------------------------
| | インデックス | 値 |   
------------------------
| | 0 | "a" |
| | 1 | "b" |
| | 2 | "c" |
| | 3 | "d" |
| | 4 | "e" |
------------------------

次に、インデックス 3 を削除します。新しい配列は配列 A または配列 B になります。

配列リスト A: 配列リスト B:
------------------------ ------------------------
| | インデックス | 値 | | | インデックス | 値 |   
------------------------ ------------------------
| | 0 | "a" | | | 0 | "a" |
| | 1 | "b" | | | 1 | "b" |
| | 2 | "c" | | | 2 | "c" |
| | 3 | | | | | 3 | "e" |
| | 4 | "e" | ------------------------
------------------------
4

3 に答える 3

6

Bになりますが、インデックス操作を使用して arraylist を変更すると、ご理解のとおりArrayList再配置されます。そのためArrayLists、変更が多すぎるとコストがかかります

これはremove(int)ドキュメントが言うことです

このリスト内の指定された位置にある要素を削除します。後続の要素を左にシフトします (インデックスから 1 を引きます)。

于 2013-09-10T08:49:09.843 に答える
0

ArrayList はBの例のようになります。

それがまさにArrayListの仕組みであり、再配置しています。

于 2013-09-10T08:54:10.560 に答える