qq_嗨棈L靈_0
2017-06-02 16:55
如果map的value是一个list,那么map.get(1).add(user),这样获取到一个list,向list里边添加一个user对象,这样子对吗?这样是修改了map.get(1)所对应的list吗?
好想法呀!!你的想法完全正确!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());
}
}
能发完整的吗
Java入门第三季
409776 学习 · 4546 问题
相似问题