2011-01-07 13 views
2

indexof()と同様の機能があり、文字列配列(好ましくはソートされていない)を検索して文字列を返しますか? (または多分縦座標値?)

例えば私がしようとしています:配列内のオブジェクトを参照するJava

String[] colours= {"Red", "Orange", "Yellow"}; 

System.out.println("indexOf(Red) = " + 
     colours.indexOf("Red")); 

を...しかし、何の成功を有していません。

ありがとうございました。

AV

p.s.ご注文いただいた場合、これは最終的に(重要場合)2次元配列

答えて

5
String[] colours= {"Red", "Orange", "Yellow", "Green", "Blue", "Violet", "Orange", "Blue"}; 

Arrays.asList(colours).indexOf("Red"); // 0 

OR
で作業する必要があります。その後、

Arrays.sort(colours); 
Arrays.binarySearch(colours,"Red");//binary search takes sorted[natural order] array as input 
問題ではありません
+0

動作しません。 List.get()はint型のパラメータを必要とし、配列を検索しません。 –

+0

@Toa ah .. 'indexOf'それは –

+0

であるはずです。bianrysearchは動作しているようです。 – alisdairv

2

ソート済み配列の場合Arrays.binarySearchを使用できます:http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html

ソートされていない配列の場合Arrays.asList(array).indexOf("String")が行います。

しかし、この最後の方法は、リストが順番にスキャンされるため効率的ではありません。

+1

そして、それはArrayList – Twister

0

率直に言って...

int findString(String[] stringArray;String match) { 
    for (i=0;i<stringArray.length;++i) { 
    if (match.equals(stringArray[i]) return i; 
    } 
} 

はあなただけで罰金を行います。あなたは質問をするのに要した時間よりも短い時間でそれを書いていた可能性があります。

関連する問題