0

所以我有这个数据结构:

段 - 列号 - 值

  • “标题” - 1 - Foo
  • “标题” - 2 - Foo
  • “标题” - 3 - Foo
  • “内容” - 1 - Foo
  • “内容” - 2 - Foo
  • “内容” - 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")));

第二个参数是一个二维数组。它是列号和值。

我想做的是这样的

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

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

先感谢您!

4

1 回答 1

4

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

没有三维图,但有a Mapof Maps。它的语法是Map<String, Map<Integer, String>>. 请注意,这仍然保留了Maps 具有的键值顺序 - 键是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 回答