【Java】list内の要素を検索する方法を理解しよう!indexOfとcontainsの違いとは?
  • facebookページ
  • twitterページ
  • 2021.01.01

    【Java】list内の要素を検索する方法を理解しよう!indexOfとcontainsの違いとは?

    Javaでは、list内の要素を検索する方法として、大きくindexOfメソッドを利用する方法とcontainsメソッドを利用する方法が挙げられます。

    本記事では、2つのメソッドの使い方を解説しながら、それぞれのメソッドの違いについてご紹介していきます。

    Javaでlist内の要素を特定するならindexOfで検索


    まずJavaのlistで要素のインデックス番号を検索する方法として「indexOf」メソッドを利用することが可能です。

    indexOfメソッド

    indexOfメソッドは、引数に検索した要素を指定することで、返り値として最初に見つかったインデックス番号が返却されます。

    実行した結果は下記の通りです。

    インデックス番号は「0」から数えるため、今回の場合2つ目の値、つまりインデックス番号「1」が値として返却されています。

    ポテパンダの一言メモ

    検索対象の値が見つからなかった場合には、「-1」が返却されます。
    リストの検索は文字列だけでなく、様々な型で利用可能です。

    lastIndexOfメソッド

    リストから特定の要素を検索する方法として、「lastIndexOf」メソッドを利用することも可能です。

    lastIndexOfメソッドを利用する場合、後ろから数えて何番目のインデックス番号で見つかったかを返却します。

    実行した結果が下記の通りです。

    検索対象の「ねこ」は、インデックス番号「1」と「3」に格納されていますが、lastIndexOfメソッドを利用した場合、後ろから検索をスタートするため、返却値は「3」となります。

    ポテパンダの一言メモ

    lastIndexOfメソッドを利用した場合でも、返却されるインデックス番号は後ろから数えた値ではありません。
    あくまで検索開始が後ろからというだけで、格納されているインデックス番号は前からの検索時と変わらない点を意識しておきましょう。

    Javaでlist内に要素が存在するかはcontainsで検索


    続いてJavaのlist内に要素が存在するかの確認には「contains」メソッドを利用することが可能です。

    containsメソッド

    containsメソッドでは引数に設定した値が存在するか否かを「true」「false」で返却します。

    実行した結果が下記となります。

    indexOfメソッドでは、要素のインデックス番号まで特定することが出来ましたが、containsメソッドの場合には引数に指定した値がリスト内に1つでも存在すれば「true」、存在しなければ「false」が返却されます。

    containsAllメソッド

    containsAllメソッドでは、検索元のリストに引数で設定したリストの値が全て含まれる場合のみ「true」、それ以外は「false」を返却します。

    実行した結果が下記の通りです。

    複数の要素をまとめて検索したい場合などには、containsAllメソッドを使って作成した検索用のコレクションクラスを一括で検索する方法が便利です。

    さいごに:Javaのlist操作を理解して要素を適切に検索しよう!


    本記事では、Javaのlistに格納された要素を検索する方法についてご紹介してきました。

    listの検索には大きく「indexOf」メソッドと「contains」メソッドの利用が可能です。

    どちらのメソッドを利用するかについては、検索結果をどのようにプログラムで利用するのか判断して、適切なメソッドを利用するようにしましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE