在未排序的字符串数组中搜索

时间:2010-08-02 23:45:44

标签: java binary-search

我有这个字符串数组

private static String[] colorsArray = { "#bde876", "#ff8581", "#ffc472",
    "#faed75", "#a8c9e5", "#999999", "#e3a8e5", "#dddddd", "#fc603c",
    "#ffcc00", "#74e8d4", "#3cd6fc" };

然后我有这个方法

public static int getColorByString(String color) {
    return Arrays.binarySearch(colorsArray, color);
}

当我致电getColorByString("#ff8581");时,它会给我-13作为结果。

如果我理解得很好,就意味着该元素不包含在我的数组中。

我做错了什么?我怎样才能使它发挥作用?

修改

我刚刚意识到必须对数组进行排序。问题是我无法对其进行排序,因为我需要将字符串映射到特定的索引。

所以现在问题变成了,是否有任何方法可以执行线性搜索,还是必须编写它?

1 个答案:

答案 0 :(得分:4)

怎么样

Arrays.<String>asList(colorArray).indexOf("#ff8581");