1

首先让我告诉你,英语不是我的母语。我已尝试在此站点上找到此问题的解决方案,但我发现很难解释我在搜索框中寻找的内容。如果之前已发布过此问题的解决方案,请原谅。

所以基本上我需要array[x][1]找到x = input.readString()

例子:

array [0][0] = "book";

array [0][1] = "lord of the rings";

x = "book";

我现在需要一种在输入为“书”时找到“指环王”的方法。

编辑:请原谅我一开始没有添加这个。这是学校的作业,我需要使用数组,而不是哈希图,抱歉浪费您的时间

提前致谢。

更新:

gekozenCat 是输入(书) TERADENWOORDEN 是数组,其中 [0][0] = book 和 [0][1] = 指环王 CATEGORIES = 类别数量

我在这里做错了吗?

  String woordVanCat = woordBepalen (gekozenCat);

public String woordBepalen(String teBepalenWoordVanCat) {
    for (int p = 0; p < CATEGORIES; p++)
        if (TERADENWOORDEN[p][0].equals(teBepalenWoordVanCat))
        return TERADENWOORDEN[p][1];
}
4

3 回答 3

2

在这种情况下,多维数组并不是最好的。使用一个 Map,一个 HashMap:

Map<String, String> map = new HashMap<String, String>();
map.put("book", "lord of the rings");
...


String book = map.get("book");
于 2013-01-05T16:31:27.377 回答
0

试试这个:

    String[][] array;
    for (int i=0; i < array.length; i++)
        if (array[i][0].equals("book"))
            return array[i][1];
于 2013-01-05T16:31:44.063 回答
0

听起来您应该使用 aHashMap或 a Multimap在 Google 的 Guava 库中找到),具体取决于您要查找的每个输入的唯一值还是多个值。

我相信这对于您正在尝试做的事情来说是正确的数据结构,而且它在算法上比搜索数组更有效。

Map<String, String> m = new HashMap<String, String>();    
m.put("book", "lord of the rings");

String out = m.get("book"); // returns "lord of the rings"

如果您在数组中获取输入,我会将数组的每一行都填充到映射中以进行更有效的查找:

for(String[] row : array)
    m.put(row[0], row[1]); 

String out = m.get("book"); // returns "lord of the rings"
于 2013-01-05T16:32:37.833 回答