Java安排3d地图

时间:2013-05-11 16:00:33

标签: java arrays map

所以我有这个数据结构:

细分 - 列号 - 值

  • “title” - 1 - Foo
  • “title” - 2 - Foo
  • “title” - 3 - Foo
  • “content” - 1 - Foo
  • “content” - 2 - Foo
  • “content” - 3 - Foo

依旧...... <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")));

第二个参数是2D数组。这是列号和值。

我想做的就是那样

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

HashMap中的第二列是一个列表,但是当get()方法返回对象时,我无法编写类似的东西。处理此类数据的最佳方法是什么?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用的是.get(),则第一个Map的值不能是二维数组。

没有三维地图,但MapMap。其语法为Map<String, Map<Integer, String>>。请注意,这仍然保留Map具有的键值排序 - 键为StringMap的另一个<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