如何将对象输入到ArrayList <hashmap <string,object>&gt; </hashmap <string,object>

时间:2014-10-24 03:32:58

标签: java android arraylist hashmap

我有1个对象(商品)有2个属性:Stringboolean。如何将对象货物输入ArrayList<HashMap<String, Object>>?因为我想要输入ArrayList<HashMap<String, Object>>到SimpleAdapter

public class Goods {
    private String goodsName;
    private boolean isCheck = false;
    public String getGoodsName() {
        return goodsName;
    }
    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }
    public boolean isCheck() {
        return isCheck;
    }
    public void setCheck(boolean isCheck) {
        this.isCheck = isCheck;
    }
}

2 个答案:

答案 0 :(得分:1)

package ngo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    public static void main(String[] args) {
        Goods g = new Goods();
        g.setGoodsName("foo");
        g.setCheck(true);

        Map<String, Goods> map = new HashMap<String, Goods>();
        map.put(g.getGoodsName(), g);

        List<Map<String, Goods>> list = new ArrayList<Map<String, Goods>>();
        list.add(map);

        System.out.println(list.get(0).get("foo").isCheck());
    }
}

显示true

对于SimpleAdapter constructordata参数,这应该是可接受的(如果简单的话)结构。可以找到一个更详尽的使用示例here

答案 1 :(得分:0)

以下是基本示例,本身不可运行。

ArrayList<HashMap<String, Goods>> listOfMappedGoods = new ArrayList<HashMap<String, Goods>>();

HashMap<String, Goods> goodsList = new HashMap<String, Goods>();

Goods g = new Goods();
g.setGoodsName("foo");
g.setCheck(true);

goodsList.add(g.getGoodsName(), g);
listOfMappedGoods.add(goodsList);

需要注意的是,就像需要使用Goods创建每个新new Goods()对象一样,每个新的goodsList也需要使用new HashMap<String, Goods>()创建。

如果您使用类似goodsList.clear()的内容,那么您仍然指的是最初添加到listOfMappedGoods的原始地图,因此您将清除它。