int配列の要素のインデックスを求めるには?

int`型のJava配列の中で、ある値のインデックスを見つけるにはどうすればよいですか?

並べ替えられていない配列に Arrays.binarySearch を使ってみましたが、時々正しい答えが返ってくるだけでした。

Integer[] array = {1,2,3,4,5,6};

Arrays.asList(array).indexOf(4);

なお、この解決策は、List型の新しいオブジェクトを作成するので、スレッドセーフです。

また、毎回新しいオブジェクトを作成することになるので、ループなどでこれを呼び出したくはありません。

解説 (5)

リストに変換して、indexOfメソッドを使うことができます。

Array.asList(array).indexOf(1); 

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#asList(T...) http://download.oracle.com/javase/1.5.0/docs/api/java/util/List.html#indexOf(java.lang.Object)

解説 (1)

探しているインデックスが見つかるまで配列を歩くか、代わりに List を使うことができます。なお、配列をリストに変換するには、asList()を使用します。

解説 (0)