Javaの配列に要素が存在するかどうかを確認する

配列に値が存在することを確認し、可能であればその位置を取得します。次の 3 つの方法のいずれかを選択できます:
  • 配列を参照し、すべてのボックスを入力値と比較します。
  • contains()
  • メソッド BinarySearch()

1) 配列を参照して要素を検索します

この例では、関数 exists() は、配列が存在する場合は探している値の位置を返し、存在しない場合は -1 を返し、配列にこの値がないことを示すメッセージを表示します。

public class Test {

public static void main(String[] args) {
int T[]={1, 5, 2, 22, 14, 3, 18, 52, 40, 88, 73, 27};
int型valrech=22;
int position = exists(T, valrech);
if(position!=-1)
System.out.println(valrech+" は "+position" の位置にあります);

}

static int exists(int T[], int val){
for(int i = 0 ; i if(val==T[i])
//現在位置を返す
return i;
}
System.out.println("探している値が存在しません");
return -1;
}
}
Output

22 は 3
文字列の比較は "==" ではなく equals() メソッドで行われます。記事を読むjava.

2で2つの文字列を比較する方法) 配列に要素が存在するかどうかを確認します

このメソッドは、要素の存在をテストするだけです。この例では、次のコードで string 型と int 型の両方を比較できます。contains の場合は、配列全体を toString(T).

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
int T[]={100,150,180,220,240};
System.out.println(contains(T, "220"));

}

static public boolean contains(int[] T, String val) {
return Arrays.toString(T).contains(val);
}
}
Output

true
Why contains()はString型をサポートしていますが、int型はサポートしていませんか?int はプリミティブ型であり、String はインスタンス化後にオブジェクトになり、contains(Object o) オブジェクトのみを検索します.

メソッド Integer.valueOf(T[i])、それ以外の場合は Integer オブジェクトが最初から使用されます。このコードは、2つの違いを示しています:

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
int T[]={10,14,28,201,280};
整数[] T2 = {10,14,28,201,280};
//配列 int
System.out.println(Arrays.asList(T).contains(28));
//配列 Integer
System.out.println(Arrays.asList(T2).contains(28));
}
}
Output

false
true

3) BinarySearch メソッドで値を検索する

このメソッドは、すべての型を受け入れるため、ジェネリックです。 integer, float, char, double, boolean, short など

import java.util.Arrays;

public class Test {
public static void main(String[] args) {
int T[]={'a','b','c','d','e','f'};
System.out.println("探している値は "+Arrays.binarySearch(T,'d')) の位置
です);
}
}
Output:

探している値は 3