HOWTO · Java

Java を使用してリスト内の要素のインデックスを検索する

このチュートリアルでは、Java を使用してリスト内の要素のインデックスを見つける方法について説明します。

このページの内容

リストを操作する場合、場合によってはインデックスを見つけることが重要になるため、特定の要素のインデックスを見つける必要がある場合があります。

employee リストを扱っていて、特定の employee シリアル番号を見つける必要があるとします。 その場合、リストで特定の employee インデックスを見つける必要があります。

この記事では、indexOf() メソッド、Stream API、およびループを使用して、リストの特定の要素のインデックスを見つける方法を学びます。

方法 1: indexOf() メソッドを使用してインデックスを検索する

indexOf() メソッドを使用して、特定のリスト要素のインデックスを簡単に見つけることができます。 この目的の説明とともに、以下のコード例に従うことができます。

コード例:

// importing necessary packages
import java.util.List;

public class FindIndex {
  public static void main(String[] args) {
    // Creating a list
    List<Integer> MyVal = List.of(5, 10, 4, 3, 6, 2, 80, 6);
    // Specifying the item
    int FindItem = 80;

    // Finding the index
    int Index = MyVal.indexOf(FindItem);
    // printing the index for the specific item
    System.out.println("The index is: " + Index);
  }
}

出力:

The index is: 6

この例では、最初に MyVal という名前のリストを取得し、インデックスを検索するアイテムも取得します。 それから、探している項目とともにそれを indexOf() メソッドに渡しました。

リストにアイテムが見つかった場合は、インデックスを出力します。 それ以外の場合、-1 を返します。これは、探しているアイテムが見つからなかったことを意味します。

方法 2: Stream API を使用してインデックスを検索する

このメソッドでは、Stream API を使用して、リスト内の特定の要素のインデックスを見つけます。 このアプローチを使用するには、以下のコード例とその説明に従うことができます。

コード例:

// importing necessary packages
import java.util.List;
import java.util.Objects;
import java.util.stream.IntStream;

public class FindIndex {
  public static void main(String[] args) {
    // Creating a list
    List<Integer> MyVal = List.of(5, 10, 4, 3, 6, 2, 80, 6);
    // Specifying the item
    int FindItem = 80;

    // Finding the index
    int Index = IntStream.range(0, MyVal.size())
                    .filter(i -> Objects.equals(MyVal.get(i), FindItem))
                    .findFirst()
                    .orElse(-1);

    // printing the index for the specific item
    System.out.println("The index is: " + Index);
  }
}

出力:

The index is: 6

上記のコード フェンスでは、最初に MyVal という名前のリストを取得し、検索するインデックスのアイテムも取得します。

次に、それを IntStream に渡して要素をフィルター処理し、提供した要素のインデックスを見つけます。 項目が MyVal リストにある場合はインデックスを取得します。 それ以外の場合、出力として -1 を取得します。

方法 3: ループを使用してインデックスを検索する

リスト内の特定の要素のインデックスを見つけるために、ループ (プロジェクトの要件に基づいて forwhile、または do...while) を使用することもできます。 それを理解するには、以下のコード例とその説明を見てください。

コード例:

// importing necessary packages
import java.util.List;
import java.util.Objects;

public class FindIndex {
  public static void main(String[] args) {
    // Creating a list
    List<Integer> MyVal = List.of(5, 10, 4, 3, 6, 2, 80, 6);

    // Specifying the item
    int FindItem = 80;

    int Index = -1;
    // Finding the index
    for (int i = 0; i < MyVal.size(); i++) {
      if (Objects.equals(MyVal.get(i), FindItem)) {
        Index = i;
        break;
      }
    }

    // printing the index for the specific item
    System.out.println("The index is: " + Index);
  }
}

出力:

The index is: 6

ここでは、最初に MyVal という名前のリストを取得し、インデックスを検索するアイテムも取得します。 次に、ループを使用してリストを繰り返し処理し、すべての要素を探している項目と一致させます。

必要なアイテムが見つかったら、インデックスを変数に保存し、ループを中断して、それ以上の反復を回避します。 break キーワードを使用して外観を中断できます。

前の 2つの例と同様に、このアプローチは、指定された項目がリストにある場合はインデックスを返し、それ以外の場合は -1 を返します。