こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 JavaでArrayListの要素を削除するArrayList.removeメソッドについて
- ArrayList.removeメソッドとは
- ArrayList.removeメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
IntelliJ IDEAのエディション | Community(無料版) |
IntelliJ IDEAのバージョン | 2021.3.2 |
プロジェクト | Javaプロジェクト |
SDK | Oracle OpenJDK version17.0.2 |
Javaを動かすためにIntelliJ IDEAを使っています。
IntelliJ IDEAのインストールは、下の記事をご参考ください。
ArrayList.removeメソッドとは
ArrayList.removeメソッドとは、ArrayListから引数で指定されているインデックスや値を削除するメソッドです。
ArrayList.removeメソッドを使うためには、
1 |
import java.util.ArrayList; |
をインポートする必要があります。
ArrayList.removeメソッドは使い方が
- パターン1:インデックスを指定する場合
- パターン2:値を指定する場合
の合計2パターンあります。
それぞれ解説します。
パターン1:インデックスを指定する場合
インデックスを指定してArrayList.removeメソッドを使った場合、引数で指定したインデックスで指定された要素が削除されます。
もし削除した位置より後ろに要素が存在する場合、1つずつ前にずれます。
たとえば
1 2 3 |
ArrayList<String> sample = new ArrayList<>(); sample.add("test"); sample.add("hogehoge"); |
というArrayListがある、とします。
中身は
1 2 |
test hogehoge |
です。
このArrayListに対して
1 |
sample.remove(0); |
と実行した場合、変数sampleには
1 |
hogehoge |
と、0番目に「test」が削除され「hogehoge」は1つ前にずれます。
注意点としてもし指定するインデックスがArrayListの要素数より大きい場合、コンパイルは通るものの実行すると
1 |
Exception in thread "main" java.lang.IndexOutOfBoundsException |
という例外が発生します。
パターン2:値を指定する場合
値を指定してArrayList.removeメソッドを使った場合、引数に指定した値がArrayListに存在する場合要素が削除されます。
ArrayListに指定した値の要素が複数ある場合は、最初に見つかった要素、つまり最小のインデックスの要素を削除します。
こちらもパターン1と同様にもし削除した位置より後ろに要素が存在する場合、1つずつ前にずれます。
たとえば
1 2 3 4 |
ArrayList<String> sample = new ArrayList<>(); sample.add("test"); sample.add("hogehoge"); sample.add("test"); |
というArrayListがある、とします。
中身は
1 2 3 |
test hogehoge test |
です。
このArrayListに対して
1 |
sample.remove("test"); |
と実行した場合、変数sampleには
1 2 |
hogehoge test |
と、0番目に「test」が削除されますが、2番目の「test」は削除されません。
もし指定する値がArrayListに存在しなかった場合は、何も起こりません。
では、次の章で実際に使ってみます。
ArrayList.removeメソッドを解説するプログラムの概要
ArrayList.removeメソッドを解説するプログラムでは、ArrayListを新規作成し
- インデックス指定
- 値指定
でそれぞれ要素を削除して、結果を表示させます。
解説で使うJavaプログラムは、Sampleプロジェクトのsampleパッケージ内にある、とします。
Javaサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package sample; import java.util.ArrayList; public class Sample { public static void main(String[] args) { ArrayList<String> fruitList = new ArrayList<>(); fruitList.add("リンゴ"); fruitList.add("オレンジ"); fruitList.add("ぶどう"); fruitList.add("リンゴ"); System.out.println("■削除前"); for (String fruit : fruitList) { System.out.println(fruit); } fruitList.remove(1); System.out.println("■インデックス指定で削除"); for (String fruit : fruitList) { System.out.println(fruit); } fruitList.remove("リンゴ"); System.out.println("■値指定で削除"); for (String fruit : fruitList) { System.out.println(fruit); } } } |
サンプルプログラムのfor文の書き方は、拡張for文と言います。
詳しくはこちらの記事をご参考ください。
実行結果
Javaプログラムを実行します。
実行のやり方は
- プログラムを右クリックして実行
- 実行タブから実行
- ガターから実行
の3種類あるので、いずれかで実行します。
詳しい解説は以下の記事をご参考ください。
1 2 3 4 5 6 7 8 9 10 11 12 |
■削除前 リンゴ オレンジ ぶどう リンゴ ■インデックス指定で削除 リンゴ ぶどう リンゴ ■値指定で削除 ぶどう リンゴ |
指定したインデックスと値でそれぞれArrayListから要素が削除できていることが確認できました。
まとめ:ArrayList.removeメソッドを使ってみよう!
以上がJavaのArrayList.removeメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント