1. リストの途中 (または先頭) に要素を追加する
リストの途中に要素を挿入したい場合、リスト内では次のようになります。
11 個の要素のリストがあるとします。
リストのインデックス 5 に数値 10,000 を挿入したいとします。これを行うには、次を実行するだけです。
list.add(5, 10000);
変数はどこにlist
ありますかArrayList
。このadd(int index, type value)
メソッドは、リストの 5 番目の位置に値 10000 を追加します。このadd()
メソッドでは次のことが起こります。
ステップ 1: 5 番目の位置から始まる配列のすべての要素が、配列の末尾に向かって 1 要素ずつシフト (コピー) されます。
配列の 5 番目と 6 番目のセルの要素が同じになっていることに注意してください。
ステップ 2: 5 番目のセルに値 10,000 を書き込みます。
これで、リストには配列のすべての要素が含まれ、5 番目のセルには数値 10,000 が含まれます。まさに私たちが望んでいたものです。
2. リストから要素を削除する
リストからの要素の削除は要素の挿入と似ていますが、プロセスが逆になります。
リストから 3 番目の要素を削除してみましょう。これを行うには、以下を実行する必要があります。
list.remove(3);
Remove() メソッドで何が起こるかは次のとおりです。
ステップ 1: 配列の 4 番目の位置から始まる要素が、配列の先頭に向かって 1 要素ずつシフト (コピー) されます。
ステップ 2: 変数の値がsize
1 減ります。
配列の最後に灰色の値がいくつかあることに注意してください。技術的には、これらはゴミです。ガベージ コレクションを妨げないように、これらを削除する必要があります。
ステップ3: ゴミを片づける
3. Java でリストを操作する実際の例
リストを操作する例をいくつか書いてみましょう。
1 から 20 までの範囲のすべての偶数をリストします。
コード | ノート |
---|---|
|
リスト オブジェクトを作成します。 すべてのインデックスをループします 1 。20 インデックスが 2 剰余なしで割り切れる場合は、リストに追加します。 |
次に、リストのすべての要素を画面に表示してみましょう。
コード | ノート |
---|---|
|
リスト オブジェクトを作成する すべてのインデックスをループします 1 。20 数値が 2 剰余なしで割り切れる場合は、リストに追加します 。0 からリストのサイズまでループします 。各要素を画面に表示します。 |
要素の削除:
次に、4 で割り切れるすべての要素を削除しましょう。リストから要素を削除すると、残りの要素の位置がすぐに変更されることに注意してください。
コード | ノート |
---|---|
|
リスト オブジェクトを作成します。 すべてのインデックスをループします 1 。20 インデックスが 2 剰余なしで割り切れる場合は、それをリストに追加します 。0 からリストのサイズまでループします 。リストの要素が剰余なしで割り切れる場合は、 4 次のようにします。a) 削除要素 b) i ループの次の反復で同じインデックスを取得できるようにカウンタを 減らします。 |
リストから最後の 3 つの要素を削除する必要があるとします。
これを間違って行う方法は次のとおりです。
コード | ノート |
---|---|
|
リスト オブジェクトの作成 リストには 10 個の要素があります: 2 、4 、6 、 ... 20 n = 10 n - 3 = 7 (リストには 9 個の要素が残っています) n - 2 = 8 (リストには 8 個の要素が残っています) n - 1 = 9 (リストには 7 個の要素が残っています) |
7 番目と 8 番目の要素を削除すると、リストには 8 つの要素だけが残ります。つまり、9 番目の要素を削除することはできず、プログラムでエラーが発生します。
要素を削除する正しい方法は次のとおりです。
オプション1 | オプション 2 |
---|---|
|
|
要素は削除操作のたびに 1 つずつシフトされるため、要素は最後から削除するか、別の一貫した場所から削除する必要があります。
GO TO FULL VERSION