假设您有以下内容:
List<Map<String,Object>> test;
当键是“key1”时,如何从测试中检索值。
我尝试了以下方法:
int number = ((Integer)test.get(0).get("key1"));
但它不起作用..
假设您有以下内容:
List<Map<String,Object>> test;
当键是“key1”时,如何从测试中检索值。
我尝试了以下方法:
int number = ((Integer)test.get(0).get("key1"));
但它不起作用..
这应该会有所帮助。
Map<String, Integer> ohm = new HashMap<String, Integer>();
List<HashMap<String,Integer>> test = new ArrayList<HashMap<String, Integer>>();
ohm.put("one", 1);
ohm.put("two", 2);
test.add((HashMap)ohm);
int number = test.get(0).get("two");
System.out.println(number);
如果您的 HashMap 包含--String、Object-- 而不是 --String、Integer--以下内容应该会有所帮助。
Map<String, Object> ohm = new HashMap<String, Object>();
List<HashMap<String,Object>> test = new ArrayList<HashMap<String, Object>>();
ohm.put("one", 1);
ohm.put("two", 2);
test.add((HashMap)ohm);
int number = (Integer)test.get(0).get("one");
System.out.println(number);
您必须遍历您的列表并查找包含我猜的键的地图:
Object value = null;
for(Map<String,Object> map : test) {
if(map.containsKey("key1")) {
value = map.get("key1");
break;
}
}
我的声誉不够高,无法写评论,所以我会向您发送答案。
实际上,我不确定在哪种情况下您需要这种结构。
你可以Map<String, List<Object>> test;
改用。然后,您将像这样检索您的值:
List<Object> values = test.get("key1");
Integer value = (Integer) values.get(0);