Java

【Java初心者必見】Listの要素を検索してインデックス番号を取得する

※アフィリエイト広告を利用しています。

今回の記事ではListの要素を検索してインデックス番号を取得する方法を解説しています。

List及びArrayListにはindexOfメソッドとlastIndexOfメソッドが用意されているのでこのメソッドを使うことで検索することができます。

挫折せずにプログラミングを学ぶために必要なこと

僕はプログラミングで挫折した経験があります。

それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。

Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。

次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。

  • エラーを一人で解消できない
  • このまま勉強を続けて本当に就職できるかわからない
  • プログラミングスクールは高額すぎて通えない
  • 申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
    >>Freeksの無料カウンセリングはこちら

    indexOfメソッドとlastIndexOfメソッドで検索する

    検索したいListに対してindexOfメソッド、もしくはlastIndexOfメソッドを使用することで要素の検索を行うことができます。

    indexOfでListの検索を行う

    indexOfメソッドを使うことで、Listの何番目に指定した要素が何番目に含まれているか検索することができます。

    同じ要素が複数Listに含まれている場合は、最初の要素が何番目かを検索して、結果を返却します。

    引数で渡した要素が存在しない場合は、「-1」が返却されます。

    int 変数名 = Listオブジェクト.indexOf(検索する要素);

    lastIndexOfで要素の検索を行う

    lastIndexOfを使うことで、Listの一番後ろの要素のインデックスを検索して取得することができます。

    こちらも引数で渡した要素が存在しない場合には「−1」が返却されます。

    int 変数名 = Listオブジェクト.lastIndexOf(検索する要素);

    Listの検索を行うサンプルコード

    import java.util.List;
    import java.util.ArrayList;
    
    class ListTest {
        public static void main(String[] args) {
            // Listの生成
            List<String> colors = new ArrayList<>();
    
            // colorsに要素を追加
            colors.add("red");
            colors.add("blue");
            colors.add("green");
            colors.add("brack");
            colors.add("blue");
            colors.add("white");
    
            // Listの中で最初のblueが何番目か検索
            int firstBlueIndex = colors.indexOf("blue");
            // 最後のblueが何番目か検索
            int lastBlueIndex = colors.lastIndexOf("blue");
            // 最初のyellowが何番目か検索
            int firstYellowIndex = colors.indexOf("yellow");
            // 最後のyellowが何番目か検索
            int lastYellowIndex = colors.lastIndexOf("yellow");
    
            if(firstBlueIndex >= 0 ){
                System.out.println("colorsの中にblueは" + firstBlueIndex + "番目にあります。");
            }else {
                System.out.println("colorsの中にblueは存在しません。");
            }
    
            if(lastBlueIndex >= 0 ){
                System.out.println("colorsの中で最後のblueは" + lastBlueIndex + "番目にあります。");
            }else {
                System.out.println("colorsの中にblueは存在しません。");
            }
    
            if(firstYellowIndex >= 0 ){
                System.out.println("colorsの中にyellowは" + firstYellowIndex + "番目にあります。");
            }else {
                System.out.println("colorsの中にyellowは存在しません。");
            }
            
            if(lastYellowIndex >= 0 ){
                System.out.println("colorsの中にyellowは" + lastYellowIndex + "番目にあります。");
            }else {
                System.out.println("colorsの中にyellowは存在しません。");
            }
        }
    }
    

    Listを準備する

    List<String> colors = new ArrayList<>();
    
    colors.add("red");
    colors.add("blue");
    colors.add("green");
    colors.add("brack");
    colors.add("blue");
    colors.add("white");

    まずはListの準備をします。宣言と初期化をしてaddメソッドを使って要素を追加します。
    今回はcolorsというListを作って色の名前を追加しました。

    要素が何番目に含まれているか検索する

    int firstBlueIndex = colors.indexOf("blue");
    int lastBlueIndex = colors.lastIndexOf("blue");
    int firstYellowIndex = colors.indexOf("yellow");
    int lastYellowIndex = colors.lastIndexOf("yellow");

    この記事の本題です。
    indexOfメソッドに引数として検索したい値を渡します。

    indexOfではListの中で最初に現れるインデックス番号を返します。

    もし引数として渡した要素がなければ-1が返ってきます。

    今回の例でいくとblueが最初に出てくるのは1番目の要素なのでfirstBlueIndexには1が格納されます。

    yellowはListには含まれないので−1が返ってきてfirstYellowIndexには-1が格納されます。

    次にlastIndexOfメソッドを使うことでそのリスト内の最後のindexが返却されます。

    よってblueを渡すと4が返ってきてListの中に含まれないyellowを渡すと-1が返ってきます。

    動作確認

    これをそれぞれif文で条件判定して出力します。
    実行結果は以下の通りになります。

    java ListTest
    colorsの中にblueは1番目にあります。
    colorsの中で最後のblueは4番目にあります。
    colorsの中にyellowは存在しません。
    colorsの中にyellowは存在しません。

    今回はJavaのListで要素の検索を行う方法を解説しました!Listは実務でも利用することが多いので、使えるようにしっかりと勉強しておきたいです。

    挫折せずにプログラミングを学ぶためには?

    僕はプログラミングで挫折した経験があります。

    エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。

    「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。

    原因は当時周りに聞ける人が誰もいなかったからです。

    プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。

    周りに聞ける人なんていない

    そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。

    多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。

    しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。

    「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。

    \\サブスク型スクールで挫折せずにエンジニアになろう//

    Freeks公式サイトはこちら

    まずは無料カウンセリングから

    【関連記事】Freeks評判、口コミ

    -Java
    -, , ,