Java で配列に特定の値が含まれていることを確認する
-
Java で
array.contains()
メソッドを使用して、配列に特定の値が含まれていることを確認する - Java 8 ストリームを使用して、配列に特定の値が含まれていることを確認する
-
単純な
for
ループを使用して、配列に特定の値が含まれていることを確認する
配列は、明確な順序で配置された要素の体系的なコレクションです。内部的には、配列要素は連続したメモリ位置に格納されます。
配列内の要素を検索するには、さまざまな方法があります。さまざまな方法により、時間と複雑さが異なります。以下は、配列内の要素を検索するためのいくつかのリストされた方法です。
Java で array.contains()
メソッドを使用して、配列に特定の値が含まれていることを確認する
以下のコードブロックでは、いくつかの事前定義された値を使用して配列 arr
をインスタンス化する必要があります。次に、検索する必要のある文字列を初期化します。
Arrays
は、配列を操作するためのさまざまなメソッドを持つクラスです。このクラスには静的ファクトリメソッドとフィールドが含まれており、これらは配列内の要素の検索と並べ替えに役立ちます。
asList()
メソッドは、Arrays
クラスの静的メソッドです。パラメータから取得した指定された配列の固定リストを返します。
contains()
は List
インターフェースのメソッドです。これはパラメータとして要素を取り、この引数をリストに存在する要素と比較します。指定された要素がリストに存在する場合はブール値 true
を返し、いずれの場合も false
を返します。指定された要素のタイプがこのリストと互換性がない場合、メソッドは ClassCastException
をスローし、指定された値が null であり、このリストが null 値を許可しない場合は NullPointerException
をスローします。
package findInList;
import java.util.Arrays;
public class FindAValueInArray {
public static void main(String[] args) {
String[] arr = new String[] {"1", "2", "3"};
String stringToSearch = "2";
System.out.println(Arrays.asList(arr).contains(stringToSearch));
}
}
上記のプログラムの出力は以下のとおりです。
true
Java 8 ストリームを使用して、配列に特定の値が含まれていることを確認する
上記のコードブロックでは、最初の 2 行は最初のコードの行と似ています。ここでは、Arrays
クラスの stream
メソッドを使用して、配列のストリームを作成しました。このメソッドは、指定された配列をソースとして持つシーケンシャルストリームを返します。Stream
クラスには、anyMatch()
という名前の関数があります。このメソッドは、入力として predicate
を取ります。
Predicate
は、単一の引数関数を取り、ブール
値を返す関数型インターフェースです。これには、指定された引数の述語を評価する単一の test(T t)
メソッドが含まれています。ストリームのいずれかの要素が指定された述語と一致する場合は true
を返し、そうでない場合は false
値を返します。
package findInList;
import java.util.Arrays;
public class FindAValueInArray {
public static void main(String[] args) {
String[] arr = new String[] {"1", "2", "3"};
String stringToSearch = "2";
System.out.println(Arrays.stream(arr).anyMatch(s -> s.equals(stringToSearch)));
}
}
上記のコードの出力は、最初のコードと同じです。
単純な for
ループを使用して、配列に特定の値が含まれていることを確認する
以下のコードブロックでは、従来の for
ループを使用して配列を反復処理しています。for
ループは expression1
で初期化され、カウンター値は 0
になります。ここで、カウンター値が配列の長さと比較されます。カウンター変数が定義された配列の長さよりも小さい場合、コードブロック内のステートメントが実行されます。
for
ブロック内で、String
クラスの equals
メソッドを使用して配列の各要素を比較します。ステータスが true と評価された場合、for
ループの実行を中断するために break
キーワードが使用されます。見つからない場合、コードは配列内の要素の数と同じ回数実行されます。
ループの後、要素がリストで検索された場合、print
ステートメントはステータス変数の値を true
と評価します。それ以外の場合、false
値を出力します。
package findInList;
public class FindAValueInArray {
public static void main(String[] args) {
String[] arr = new String[] {"1", "2", "3"};
String stringToSearch = "2";
boolean status = false;
for (int i = 0; i < arr.length; i++) {
status = arr[i].equals(stringToSearch);
if (status)
break;
}
System.out.println(status);
}
}
出力は、最初のコードで指定されたものと同じです。
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn