A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© winsking 中级黑马   /  2013-9-29 18:32  /  1273 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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());
   }
  }

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
哥们你可以用第三方,在重新生成一个对象,将去原对象复制一次,再进行去重
回复 使用道具 举报
在你第一次迭代打印后,原集合没有变得呀。执行去重的方法后,集合才发生了改变。我猜想你的意思是再执行了去重方法后,原集合还存在,原集合和去重后的集合是分离的。是这样吗?新建一个集合就能解决。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马