日期:2014-05-20  浏览次数:20721 次

Java中的ArrayList中元素的生存周期??
具体是这样的,我有两个ArrayList,分别为a和b,
Java code

ArrayList<HashMap<String, Object>> a = new ArrayList<HashMap<String, Object>>();
ArrayList<HashMap<String, Object>> b = new ArrayList<HashMap<String, Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
a.add(map);//我就添加一个元素到a中


然后在某一时刻我通过
Java code

HashMap<String, Object> mapTmp = a.get(0);//取出刚才添加的那个map
b.add(mapTmp);//添加到b中



我想问的是,经过上边的步骤后,a、b两个列表中的这个map是同一个对象呢还是只是有相同数据的两个map?如果在添加到b中后我把a列表直接清空,那么b中的这个map还存在么还有用么?同样,如果我在清空a列表前先把b列表清空,那a中的这个map还可用么?刚学JAVA,不太确定

------解决方案--------------------
同一个对象


------解决方案--------------------
a、b两个列表中的这个map是同一个对象
b中把a列表清空,b中的这个map仍然存在,因为可以通过a.get(0)获得,但b中的列表确实空了
a中把b列表清空,a中的这个map仍然存在,因为可以通过b.get(0)获得,但a中的列表确实空了

------解决方案--------------------
有点绕,但仔细想想应该能明白的,希望对LZ有所帮助