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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


  1. <P>public static ArrayList singleElement(ArrayList al)
  2. {
  3. ArrayList newAl = new ArrayList();
  4. Iterator it = al.iterator();
  5. while(it.hasNext())
  6. {
  7. /*</P>
  8. <P>建立一个Object对象引用,用来接收it.next()返回的对象,
  9. Object obj = it.next();
  10. if(!newAl.contains(obj))
  11. newAl.add(obj);
  12. */</P>
  13. <P> </P>
  14. <P>/*</P>
  15. <P>此处
  16. 没有建立Object对象引用,编译通过,运行时得不到预想的答案。
  17. if(!newAl.contains(it.next()))
  18. newAl.add(it.next());
  19. }
  20. */
  21. return newAl;
  22. }</P>
复制代码



以下为源码。
  1. import java.util.*;

  2. /*
  3. 去除ArrayList集合中重复的元素
  4. */
  5. class ArrayListDemo
  6. {
  7. public static void main(String[] args)
  8. {
  9. ArrayList al = new ArrayList();
  10. al.add("java01");
  11. al.add("java03");
  12. al.add("java01");
  13. al.add("java02");
  14. al.add("java03");
  15. al.add("java01");
  16. sop("判断之前====="+al);
  17. al = singleElement(al);
  18. sop("判断之后:::"+al);
  19. }

  20. public static ArrayList singleElement(ArrayList al)
  21. {
  22. ArrayList newAl = new ArrayList();
  23. Iterator it = al.iterator();
  24. while(it.hasNext())
  25. {
  26. /*
  27. Object obj = it.next();
  28. if(!newAl.contains(obj))
  29. newAl.add(obj);
  30. */
  31. if(!newAl.contains(it.next()))
  32. newAl.add(it.next());
  33. }

  34. return newAl;
  35. }

  36. public static void sop(Object obj)
  37. {
  38. System.out.println(obj);
  39. }
  40. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
if(!newAl.contains(it.next()))
newAl.add(it.next());

你说的是不是这部分问题,我也考虑了这个部分,这个还是不可以的,毕老师已经说过这个问题,while中不可以有俩个it.next();当ArrayList中元素有偶数时,没有异常,但是当奇数时,就会有异常发生。得迭代一次,就判断一次。

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

回复 使用道具 举报
回天之力 发表于 2013-11-3 23:30
if(!newAl.contains(it.next()))
newAl.add(it.next());

啊啊,原来这样。你说毕老师说过这问题时还以为自己听课不专心,往后一看就明了。我只当它迭代一次了。谢谢呀
回复 使用道具 举报
发哥-阿花 发表于 2013-11-4 13:30
啊啊,原来这样。你说毕老师说过这问题时还以为自己听课不专心,往后一看就明了。我只当它迭代一次了。谢 ...

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