黑马程序员技术交流社区

标题: 一个奇怪的迭代打印问题 [打印本页]

作者: winsking    时间: 2013-9-29 18:32
标题: 一个奇怪的迭代打印问题
本帖最后由 winsking 于 2013-10-3 13:12 编辑

在学习集合迭代时,突然想到这个问题,怎么让迭代后,原集合不变,或者把原集合复制一下?
public static void main(String[] args)
  {
   ArrayList a = new ArrayList();   
   a.add(new Person("Ri1",21));
   a.add(new Person("Ri2",22));
   a.add(new Person("Ri3",23));
   a.add(new Person("Ri1",21));
   a.add(new Person("Ri2",22));
   a.add(new Person("Ri3",23));
   
   Iterator it = a.iterator();
   while(it.hasNext())
   {
    Person p = (Person)it.next();
    sop(p.getName()+"::"+p.getAge());
   }   
   //先迭代打印后,怎么让a中元素不变,再执行下面的去除重复操作,打印出来,对比看一下去重操作?   
   a=quChong(a);    //去除重复对象方法
   Iterator it = al.iterator();   
   while(it.hasNext())
   {
    Person p = (Person)it.next();
    sop(p.getName()+"::"+p.getAge());
   }
  }


作者: 周志龙    时间: 2013-9-29 18:50
哥们你可以用第三方,在重新生成一个对象,将去原对象复制一次,再进行去重
作者: 摄影勾魂    时间: 2013-9-29 19:43
在你第一次迭代打印后,原集合没有变得呀。执行去重的方法后,集合才发生了改变。我猜想你的意思是再执行了去重方法后,原集合还存在,原集合和去重后的集合是分离的。是这样吗?新建一个集合就能解决。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2