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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chudaming213 中级黑马   /  2014-12-14 15:17  /  1358 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位快过来看看啦,有问题啦有问题啦!!
问题:请问使用构造器遍历了list之后,还能有什么办法再使用这个构造器在遍历一遍list吗?小弟写了个代码想先输出一遍,去掉某些元素后在遍历一遍。

  1. import java.util.Iterator;
  2. import java.util.LinkedList;

  3. public class LinkedListDemo {
  4.         public static void main(String[] args) {
  5.                 LinkedList li = new LinkedList();
  6.                 li.add(new Person("wangwu0", 25));
  7.                 li.add(new Person("wangwu32", 65));
  8.                 li.add(new Person("wangwu4", 34));
  9.                 li.add(new Person("wangwu3", 25));
  10.                 li.add(new Person("wangwu3", 25));
  11.                 Iterator it = li.iterator();
  12.                 while (it.hasNext())
  13.                         System.out.println(it.next());
  14.                 System.out.println();
  15. System.out.println(li.remove(2));
  16.                 System.out.println();
  17.                 while (it.hasNext()) //这里没有效果的。想问问有没有用构造器再实现一次的方案
  18.                         System.out.println(it.next());
  19.         }

  20. }
复制代码



8 个回复

倒序浏览
  1.          for (int i = 0; i < li.size(); i++) {
  2.                  System.out.println(li.get(i));
  3.                  }
  4.                  System.out.println(li.getFirst());
复制代码

后来我把代码改成上面的,想利用索引解决问题,但是出现了意想不到的结果:
Person [name=wangwu0, age=25]
Person [name=wangwu32, age=65]
Person [name=wangwu3, age=25]
Person [name=wangwu3, age=25]
Person [name=wangwu0, age=25]
以上只是for循环输出的部分
回复 使用道具 举报
构造器? 你是想说迭代器吧……
回复 使用道具 举报
迷失的小Z 发表于 2014-12-14 15:52
构造器? 你是想说迭代器吧……

哈哈,一不小心是写错了
回复 使用道具 举报
chudaming213 发表于 2014-12-14 16:07
哈哈,一不小心是写错了

其实很简单, 重新创建一个迭代器,因为一个迭代器运行到最后是不能把指针(先这么理解吧,其实我也不知道这块应该叫什么)返回到最初的位置的。还有你这个迭代器里大括号哪去了 ,我咋没找到呢,另外迭代器删除元素是不用传参数的,肯定什么都删除不了啊……总之你这个代码写的太混乱了,我都没看懂啥意思……你用文字描述下你想干嘛吧……
回复 使用道具 举报
迷失的小Z 发表于 2014-12-14 16:49
其实很简单, 重新创建一个迭代器,因为一个迭代器运行到最后是不能把指针(先这么理解吧,其实我也不知 ...

毕老师在后期才讲到泛型的,我没学到所以没加<>。"重新创建一个迭代器"能解决问题,难道就没有使用同一个迭代器解决这个问题的方法了?初学,写的有点乱,见笑了。:lol
回复 使用道具 举报
chudaming213 发表于 2014-12-14 17:12
毕老师在后期才讲到泛型的,我没学到所以没加。"重新创建一个迭代器"能解决问题,难道就没有使用同一个迭 ...

不是泛型的问题,总之别想着用同一个迭代器解决问题了,在我看来是不可能的,我的理解是迭代器只要用完就废了……可以当垃圾处理掉了,……
回复 使用道具 举报
可以重新定义迭代器读取

DF_T85XX)0KKE}YZ8OI5E82.jpg (161.3 KB, 下载次数: 49)

DF_T85XX)0KKE}YZ8OI5E82.jpg
回复 使用道具 举报
lishuliang28 发表于 2014-12-14 21:58
可以重新定义迭代器读取

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