こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。
今回の記事ではArrayListの要素を消すメソッドについて解説していきます。
具体的に解説するメソッドはremove(引数intとStringの2パターン)、removeAll、clearです。
早速サンプルコードを確認していきましょう。
挫折せずにプログラミングを学ぶために必要なこと
僕はプログラミングで挫折した経験があります。
それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。
Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
>>Freeksの無料カウンセリングはこちら
サンプルコード
今回作成したサンプルコードは以下のようになります。
Listの要素を全て表示するという処理を何回も行うので、メソッドを作成しました。
printListメソッドにListを渡すことでListの中身を全部表示してくれます。
それではそれぞれのメソッドについて詳しくみていきます。
import java.util.ArrayList;
import java.util.List;
public class ArrayListRemove {
public static void main(String[] args) {
List<String> strList = new ArrayList<>();
strList.add("Tokyo");
strList.add("Aichi");
strList.add("Osaka");
strList.add("Fukuoka");
strList.add("Tokyo");
strList.add("Sapporo");
strList.add("Sendai");
strList.add("Aichi");
System.out.println("-------初期リスト------------");
printList(strList);
System.out.println("----インデックス1を指定したremove------");
strList.remove(1);
printList(strList);
System.out.println("----Tokyoを指定したremove------");
strList.remove("Tokyo");
printList(strList);
List<String> removeList = new ArrayList<>();
removeList.add("Osaka");
removeList.add("Sendai");
System.out.println("----removeAllメソッドでremoveListを指定した場合---------------");
strList.removeAll(removeList);
printList(strList);
System.out.println("----------clearで全消し----------");
strList.clear();
printList(strList);
System.out.println("----isEmptyメソッドを使うとTrueが返ってくる---------------");
System.out.println(strList.isEmpty());
}
public static void printList(List<String> list) {
for(String str: list) {
System.out.println(str);
}
System.out.println("-----------ここまで-----------");
System.out.println();
}
}
Listの初期化と値の追加
まず最初にListを作成して値を追加していきます。その後一度全表示します。
List<String> strList = new ArrayList<>();
strList.add("Tokyo");
strList.add("Aichi");
strList.add("Osaka");
strList.add("Fukuoka");
strList.add("Tokyo");
strList.add("Sapporo");
strList.add("Sendai");
strList.add("Aichi");
System.out.println("-------初期リスト------------");
printList(strList);
現時点でのListの中身はこんな感じです。
-------初期リスト------------
Tokyo
Aichi
Osaka
Fukuoka
Tokyo
Sapporo
Sendai
Aichi
-----------ここまで-----------
remove(インデックスを指定)
最初にインデックス番号を指定して要素の削除を行ってみます。
removeメソッドにint型の値を渡すことで、そのインデックス番号の要素を削除してくれます。
strList.remove(1);
削除した上で出力すると以下のようになります。
インデックス番号1の要素だった「Aichi」が消えています。
----インデックス1を指定したremove------
Tokyo
Osaka
Fukuoka
Tokyo
Sapporo
Sendai
Aichi
-----------ここまで-----------
remove(指定した値を削除)
今度は消したい値を指定して要素の削除を行います。
使用するメソッドは先ほどと同じremoveメソッドですが、渡す引数を文字列にします。
今回は「Tokyo」を指定します。
strList.remove("Tokyo");
removeした上で出力してみると下記のようになります。
TokyoはListのなかに二つ存在しますが、一つ目のTokyoだけ削除され、二つ目のTokyoは残ったままになります。
----Tokyoを指定したremove------
Osaka
Fukuoka
Tokyo
Sapporo
Sendai
Aichi
-----------ここまで-----------
removeAll
次にremoveAllメソッドを使ってみます。別のListを用意します。
このremoveListには「Osaka」と「Sendai」を入れておきます。
このremoveListを引数としてremoveAllメソッドに渡します。
List<String> removeList = new ArrayList<>();
removeList.add("Osaka");
removeList.add("Sendai");
strList.removeAll(removeList);
結果は以下の通りになります。
removeListのなかに含まれていた「Osaka」と「Sendai」がstrListの中から削除されました。
このようにremoveAllメソッドでは引数で渡されたCollectionの要素が削除されます。
----removeAllメソッドでremoveListを指定した場合---------------
Fukuoka
Tokyo
Sapporo
Aichi
-----------ここまで-----------
clear
最後にclearメソッドです。ArrayListに含まれている要素を全て削除します。
strList.clear();
出力しても当然何も出てきません。
----------clearで全消し----------
-----------ここまで-----------
おまけとしてisEmptyメソッドも試してみます。
これはArrayListに要素がない場合にtrueが返ってきます。
System.out.println(strList.isEmpty());
true
挫折せずにプログラミングを学ぶためには?
僕はプログラミングで挫折した経験があります。
エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。
「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。
原因は当時周りに聞ける人が誰もいなかったからです。
プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。
周りに聞ける人なんていない
そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。
多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。
しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。
「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。
【関連記事】Freeks評判、口コミ