修改map中对象
如果map的value是一个list,那么map.get(1).add(user),这样获取到一个list,向list里边添加一个user对象,这样子对吗?这样是修改了map.get(1)所对应的list吗?
如果map的value是一个list,那么map.get(1).add(user),这样获取到一个list,向list里边添加一个user对象,这样子对吗?这样是修改了map.get(1)所对应的list吗?
2017-06-02
好想法呀!!你的想法完全正确!map的value可以是一个list,但是有一点需要注意的是,list里的add()方法是添加一个新的element到list里面去,不是修改原本的值。我写了一个实现你这个想法的代码,结果是:
key = 1, value = [aaa]
key = 1, value = [aaa,bbb]
可以看到list中原本存储的list.get(0)是"aaa",现在调用了add("bbb")之后相当于给list添加了一个新的element。
代码:
public class MapList { public static void main(String[] args) { // TODO Auto-generated method stub Map<String,List<String>> m = new HashMap<String, List<String>>(); List<String> l = new ArrayList<String>(); l.add("aaa");//first element in list m.put("1",l); //predefined original value of key "1" System.out.println("key = 1, "+"value = "+m.get("1").toString()); //update value of key "1" m.get("1").add("bbb"); System.out.println("key = 1, "+"value = "+m.get("1").toString()); } }
举报