所以我有这个数据结构:
细分 - 列号 - 值
依旧...... <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()方法返回对象时,我无法编写类似的东西。处理此类数据的最佳方法是什么?
提前谢谢!
答案 0 :(得分:1)
如果您使用的是.get()
,则第一个Map
的值不能是二维数组。
没有三维地图,但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