HOWTO · Java

Java で配列に Int が含まれているかどうかをチェックする

この記事では、Java で int 配列に int 値が含まれているかどうかを調べる方法を紹介します。

このページの内容

このチュートリアルでは、配列に int 値が含まれているかどうかを Java でチェックする方法を紹介し、トピックを理解するためのコード例をいくつか挙げています。

配列は、同じデータ型の要素を格納するコンテナです。例えば、整数型の配列は整数型の値だけを持つことができます。ここでは、配列に指定された値が含まれているかどうかをチェックします。この記事では、anyMatch()、contains()、binarySearch() などの組み込みメソッドを用いて、指定された配列の中から値を求めることにしました。

配列に指定した値が含まれているかどうかを anyMatch() メソッドを用いて調べる

与えられた配列の中から指定された値を求めるには anyMatch() メソッドを使用します。このメソッドは真偽値 true または false を返します。このメソッドはラムダ式を引数に取り、Java 8 以上のバージョンで利用することができます。

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = {10, 25, 23, 14, 85, 65};
    int key = 14;
    boolean val = contains(arr, key);
    System.out.println("Array contains " + key + "? \n" + val);
  }
  public static boolean contains(final int[] arr, final int key) {
    return Arrays.stream(arr).anyMatch(i -> i == key);
  }
}

出力:

Array contains 14? 
true

配列に指定した値が含まれているかどうかを contains() メソッドを用いて調べる

与えられた配列の中から指定された値を求めるには contains() メソッドを利用します。このメソッドは真偽値 true または false を返します。最初の引数は配列で、2 番目の引数は検索する値です。contains() メソッドは Apache commons ライブラリの ArrayUtils クラスに属しています。以下の例を参照してください。

import org.apache.commons.lang3.ArrayUtils;
public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = {10, 25, 23, 14, 85, 65};
    int key = 14;
    boolean val = contains(arr, key);
    System.out.println("Array contains " + key + "? \n" + val);
  }
  public static boolean contains(final int[] arr, final int key) {
    return ArrayUtils.contains(arr, key);
  }
}

出力:

Array contains 14? 
true

配列に指定した値が含まれるかどうかを contains() メソッドを用いて調べる

配列をリストに変換するには Arrays.asList() を用い、リストの contains() メソッドを用いて指定された配列の中から指定された値を見つけます。このメソッドは真偽値を返します。見つける必要のある値を引数にとります。以下の例を参照してください。

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = {10, 25, 23, 14, 85, 65};
    int key = 14;
    boolean val = contains(arr, key);
    System.out.println("Array contains " + key + "? \n" + val);
  }
  public static boolean contains(final int[] arr, final int key) {
    return Arrays.asList(arr).contains(key);
  }
}

出力:

Array contains 14? 
true

binarySearch() メソッドを用いて配列に指定された値が含まれているかどうかを調べる

与えられた配列の中から指定された値を求めるには、binarySearch() メソッドを用いることができます。このメソッドはマッチした後に値を返します。配列がソートされていれば動作しますので、このメソッドを適用する前に配列をソートしてください。以下の例を参照してください。

import java.util.Arrays;
public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = {10, 25, 23, 14, 85, 65};
    int key = 14;
    boolean val = contains(arr, key);
    System.out.println("Array contains " + key + "? \n" + val);
  }
  public static boolean contains(final int[] arr, final int key) {
    Arrays.sort(arr);
    return Arrays.binarySearch(arr, key) >= 0;
  }
}

出力:

Array contains 14? 
true

カスタムコードを用いて配列に指定した値が含まれているかどうかを調べる

与えられた配列の中から指定された値を求めるためのカスタムコードを使用することができます。配列内の値を見つけ、真または偽のブール値を返すカスタムメソッドを作成します。このメソッドは 2つの引数をとります。1つ目は配列で、2つ目は検出する必要のある値です。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    int[] arr = {10, 25, 23, 14, 85, 65};
    int key = 14;
    boolean val = contains(arr, key);
    System.out.println("Array contains " + key + "? \n" + val);
  }
  public static boolean contains(final int[] arr, final int key) {
    boolean found = false;

    for (int i = 0; i < arr.length; i++) {
      if (arr[i] == key) {
        found = true;
      }
    }
    return found;
  }
}

出力:

Array contains 14? 
true