java引用数组中的对象

时间:2011-01-07 13:53:32

标签: java c++ arrays algorithm indexing

是否有与indexof()类似的函数来搜索字符串数组(最好是未排序的)以获取字符串并返回它的索引? (或者可能是纵坐标值?)

例如我正在尝试:

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

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

......但没有成功。

谢谢。

AV

附:这最终需要在二维数组中工作(如果重要的话)

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

对于排序数组,您可以使用Arrays.binarySearch:http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html

对于未排序的数组,Arrays.asList(array).indexOf("String")会这样做。

然而,最后一种方法效率不高,因为列表将按顺序扫描。

答案 2 :(得分:0)

...坦白

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

你会没事的。你可以用比提出问题更短的时间写出来。