0

だから私はこのデータ構造を持っています:

セグメント - 列番号 - 値

  • 「タイトル」 - 1 - フー
  • 「タイトル」 - 2 - フー
  • 「タイトル」 - 3 - フー
  • 「コンテンツ」 - 1 - フー
  • 「コンテンツ」 - 2 - フー
  • 「コンテンツ」 - 3 - フー

等々...<String, Intenger, String> or <Integer, Integer, String>

私は実際にデータを解析し、それを HashMap に追加しています:

map.put(1, parser.query(job.getString("title")));
map.put(2, parser.query(job.getString("date")));
map.put(3, parser.query(job.getString("content")));
map.put(4, parser.query(job.getString("href")));

2 番目のパラメーターは 2D 配列です。列番号と値です。

私がやりたいことはそのようなものです

for(int i = 0; i < row.size(); i++)
{
    db.put(
        map.get("title").get(1),
        map.get("content").get(1),
        ...
    );
}

HashMap の 2 列目はリストですが、get() メソッドがオブジェクトを返すため、そのようなものを書くことができません。そのようなデータを処理する最良の方法は何ですか?

前もって感謝します!

4

1 に答える 1

4

を使用している場合.get()、最初の値をMap2 次元配列にすることはできません。

立体図はありませんが、シュトレンスがありMapますMap。その構文はMap<String, Map<Integer, String>>. これにより、 が持っているキーと値の順序が維持されることに注意してください。MapキーはStringで、は の別Mapのものです<Integer, String>

構文の例を次に示します。

Map<String, Map<Integer, String>> multiMap = new HashMap<>();

HashMap<Integer, String> innerMap = new HashMap<>();
innerMap.put(Integer.valueOf(1), "Foo");
multiMap.put("title", innerMap);
System.out.println(multiMap.get("title").get(Integer.valueOf(1))); // prints Foo
于 2013-05-11T16:19:40.573 に答える