Javaのリスト(ArrayList
)の要素を削除する方法について書いています。
リストの要素を削除するには、リストから下記のメソッドを使います。
・removeAllメソッド
載せているコードについては、OpenJDKのバージョン19で動作を確認しました。
removeメソッドで要素番号の要素を削除する
リスト(ArrayList
)の要素を削除したいときには、removeメソッドを使うと良いです。
要素番号を指定すると、指定した要素番号の要素を削除できます。
例えば、下記のように使うことができます。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("grape");
fruits.add("orange");
fruits.add("banana");
fruits.add("peach");
fruits.remove(1);
fruits.remove(2);
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
最初にリストを作るためにjava.util.ArrayList
をインポートしています。
execメソッドで、removeメソッドを使う処理をしています。
まず、fruits
変数に文字列のリスト(ArrayList
)を作っています。
次の処理でfruits
リストに対して、addメソッドを使って、文字列を5つ追加しています。
fruits
リストに「apple・grape・orange・banana・peach
」と追加されました。
その後、fruits
リストからremoveメソッドを呼び出しています。
最初に要素番号の「1」を指定しているので、1番目の要素が削除されます。
これでリストを0番目から数えて、1番目は「grape
」なので、「grape
」が削除されます。
その後にremoveメソッドに「2」を指定しているので、残った要素の2番目の要素が削除されます。
残っているのは「apple・orange・banana・peach
」なので、2番目の「banana
」が削除になります。
最後にfruits
リストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように表示されました。
apple
orange
peach
リストの値が削除されたことが確認できました。
このように連続して削除すると、要素番号がずれながら、removeメソッドが適用されるので気をつけてください。
removeメソッドで要素を指定して削除する
removeメソッドに対して、削除したい要素を指定して削除することもできます。
例えば、下記のように使うことができます。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits = new ArrayList<String>();
fruits.add("apple");
fruits.add("banana");
fruits.add("grape");
fruits.remove("banana");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
最初にリストを使うためのimport文を書いています。
execメソッドで、removeメソッドを使う処理をしています。
先ほどと同じようにfruits
リストに対して、3つの文字列でリストを作成しました。
次の処理で、fruits
リストからremoveメソッドを呼んでいます。
渡しているのは、リストから削除したい要素(banana
)です。
このように要素を渡すことでも削除することができます。
最後にfruits
リストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように表示されました。
apple
grape
指定した「banana
」がリストから削除されたことが確認できました。
removeAllメソッドでリストを指定して削除する
removeAllメソッドを使うことで、リストから指定したリストの要素を削除することができます。
例えば、下記のように使います。
import java.util.ArrayList;
public class DeleteListTest {
public void exec() {
ArrayList<String> fruits1 = new ArrayList<String>();
fruits1.add("apple");
fruits1.add("melon");
fruits1.add("banana");
fruits1.add("peach");
fruits1.add("grape");
ArrayList<String> fruits2 = new ArrayList<String>();
fruits2.add("melon");
fruits2.add("peach");
// fruits1リストからfruits2リストの要素を削除
fruits1.removeAll(fruits2);
for (String fruit : fruits1) {
System.out.println(fruit);
}
}
}
最初にリストを使うためのimport文を書いています。
execメソッドで、removeAllメソッドを使う処理をしています。
fruits1
リストに対して、5つの文字列でリストを作成しました。
同様にしてfruits2
リストに対して、2つの文字列でリストを作成しました。
次の処理でfruits1
リストからremoveAllメソッドを呼び出しています。
引数として渡しているのは、削除したい要素を含んだリストです。
今回はfruits2
リストを渡しているので、fruits1
リストからfruits2
リストの要素が全て削除されます。
最後にfruits1
リストをfor文でループして、値を出力しました。
プログラムを実行すると、下記のように出力されました。
apple
banana
grape
fruits2
リストの要素の「melon・peach
」がfruits1
リストから削除されていることが確認できました。
Javaのリストから要素を削除する方法まとめ
今回はJavaのリストから要素を削除する方法について書きました。
記事の内容をまとめると、下記のようになります。
・removeメソッドを使って、要素を指定して、要素を削除することができた。
・removeAllメソッドを使って、渡したリストの要素を呼び出し元のリストから削除できた。
コメント