日期:2014-05-18  浏览次数:20666 次

变量保存数据问题
 我想用变量保存数据  
如下两个变量:
    

private static List<EatinfoEntity> allEatinfoList=new ArrayList<EatinfoEntity>();//所有EatinfoEntity类的信息集合
private static List<List<EatinfoEntity>> eatinfoFirstTypeListList=new ArrayList<List<EatinfoEntity>>();//装集合的集合
List<EatinfoEntity> list=new ArrayList<EatinfoEntity>();//临时装EatinfoEntity类的集合
  
for(int i=0;i<7;i++){
if(i<3){
list.add(allEatinfoList.get(i));
}else{
eatinfoFirstTypeListList.add(list);//将第一类型集合数据保存下来
list.clear();
list.add(allEatinfoList.get(i));
}
}


为什么eatinfoFirstTypeListList到最后里面保存的只有一个集合(后面的几条数据的集合)?按理说应该是两个集合才对啊?
------解决方案--------------------
感觉你这个是逻辑问题,而不是变量存储问题。

eatinfoFirstTypeListList.add(list);这个操作确实将list放到eatinfoFirstTypeListList,但是此时list仍然指向eatinfoFirstTypeListList中,list区域,然后list.clean,eatinfoFirstTypeListList对应的list也就清空了,再然后list.add(allEatinfoList.get(i)); 于是乎,eatinfoFirstTypeListList里的list也有了allEatinfoList.get(i)。