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: ループを使用してインデックスを検索する
リスト内の特定の要素のインデックスを見つけるために、ループ (プロジェクトの要件に基づいて for
、while
、または 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
を返します。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn