int`型のJava配列の中で、ある値のインデックスを見つけるにはどうすればよいですか?
並べ替えられていない配列に Arrays.binarySearch を使ってみましたが、時々正しい答えが返ってくるだけでした。
Arrays.binarySearch
Integer[] array = {1,2,3,4,5,6}; Arrays.asList(array).indexOf(4);
なお、この解決策は、List型の新しいオブジェクトを作成するので、スレッドセーフです。
また、毎回新しいオブジェクトを作成することになるので、ループなどでこれを呼び出したくはありません。
リストに変換して、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)
探しているインデックスが見つかるまで配列を歩くか、代わりに List を使うことができます。なお、配列をリストに変換するには、asList()を使用します。
List
asList()
なお、この解決策は、List型の新しいオブジェクトを作成するので、スレッドセーフです。
また、毎回新しいオブジェクトを作成することになるので、ループなどでこれを呼び出したくはありません。
リストに変換して、indexOfメソッドを使うことができます。
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)
探しているインデックスが見つかるまで配列を歩くか、代わりに
List
を使うことができます。なお、配列をリストに変換するには、asList()
を使用します。