我无法理解与列表和映射有关的一些简单代码。以下面的代码为例:了解Java集合中的Java引用
public class test {
private Map<Integer, List<String>> myMap ;
public test(){
myMap = new HashMap<Integer, List<String>>();
}
public void addToMap(String ss){
List<String> myTemp = myMap.get(ss);
Random r = new Random();
if(myTemp == null){
myTemp = new ArrayList<String>();
myMap.put(r.nextInt(100), myTemp);
}
myTemp.add(ss);
}
public Map<Integer, List<String>> getMap1(){
return myMap;
}
public static void main(String args[]){
test myTest = new test();
myTest.addToMap("abdc");
myTest.addToMap("eeer");
System.out.println(myTest.getMap1());
}
}
究竟是怎样的addToMap()
添加新元素到MYLIST地图。更具体地说,当myTemp
是一个局部变量并且在其完成执行后被删除,myTemp.add(ss)
如何向myMap
添加新元素。而且,从addToMap()
方法中删除myTemp.add(ss)
会在main方法中打印出一个空的HashMap,为什么这样呢? put方法在add方法之前执行时如何将元素插入到映射中?谢谢。
编辑:我编辑了代码,使其更有意义。
此代码是重构和代码审查的候选人... – Xeon