Java で配列に特定の値が含まれていることを確認する

Rashmi Patidar 2023年10月12日
  1. Java で array.contains() メソッドを使用して、配列に特定の値が含まれていることを確認する
  2. Java 8 ストリームを使用して、配列に特定の値が含まれていることを確認する
  3. 単純な for ループを使用して、配列に特定の値が含まれていることを確認する
Java で配列に特定の値が含まれていることを確認する

配列は、明確な順序で配置された要素の体系的なコレクションです。内部的には、配列要素は連続したメモリ位置に格納されます。

配列内の要素を検索するには、さまざまな方法があります。さまざまな方法により、時間と複雑さが異なります。以下は、配列内の要素を検索するためのいくつかのリストされた方法です。

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 Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

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

関連記事 - Java Array