1

最初に言っておきますが、英語は私の母国語ではありません。このサイトでこの問題の解決策を見つけようとしましたが、検索ボックスで探しているものを説明するのが非常に難しいと思います。これに対する解決策が以前に投稿されていたら、すみません。

だから基本的に私は見つける必要がありarray[x][1]ますx = input.readString()

例:

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

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

x = "book";

入力が「本」のときに「ロード・オブ・ザ・リング」を見つけるメソッドが必要になります。

編集:そもそもこれを追加しなかったことを許してください。これは学校の課題であり、ハッシュマップではなく配列を使用する必要があります。時間を無駄にして申し訳ありません

前もって感謝します。

アップデート:

gekozenCat は入力 (本) TERADENWOORDEN は [0][0] = 本、[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 に答える