如何向List<Map<String, Object>>中添加值?

6

我正在尝试向一个 ArrayList 添加一个值。

这是我编写的代码:

List<Map<String, Object>> list = new ArrayList<>();
list.put(1,"foo", (Object)"bar");

但是,这并不起作用。有人有什么想法吗?

2
这段代码无法编译,请给我们真实的代码。 - ifly6
1
同时,你需要提供一个Map<String, Object>添加到列表中。将你的数据值包装在其中。 - ifly6
1
@ifly6 嗯,甚至无法编译的东西是不可能工作的,所以 OP 在这一点上是正确的... - ppeterka
1
它可能会说出比“有一个错误”更具体的信息。 - khelwood
2
你添加到list中的元素必须是一个Map - PM 77-1
显示剩余3条评论
2个回答

14
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("foo", "bar");
list.add(map);

那我需要先创建一个Map,然后将它放入ArrayList中吗? - Rohan Kishibe
1
@kishiberohan 当然可以,因为您有一组映射表。您只能将第一行中定义的类型(或扩展/实现类/接口)的对象放入列表中。 - shure
这样做不会导致内存泄漏吗?因为你正在将映射添加到列表中,所以你需要明确清除它。 - P Punam

0

private List<Map<String, Object>> map_formula;

要保存到数据库,请传递此JSON:

{
"map_formula" : [ 
        {
            "A+" : "if(price<400),\"40000\",0",
            "B" : "",
            "c" : "",
            "d" : "",
            "e" : ""
        }, 
        {
            "poor" : "value for poor",
            "good" : "300",
            "average" : "300",
            "excellent" : "300"
        }
    ]
}

从数据库中提取:-
 for (Map<String, Object> stringObjectMap : obj.getMap_formula()) {

                        if (stringObjectMap.containsKey("key_name"){
                            System.err.println("calculation started");
                        }
                    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接