黑马程序员技术交流社区

标题: 谁帮忙解释一下这几行代码的意思 [打印本页]

作者: java.love    时间: 2013-4-27 00:08
标题: 谁帮忙解释一下这几行代码的意思
本帖最后由 java.love 于 2013-4-27 22:22 编辑

正在学习迭代器,谁帮忙把这几行代码加个注释。
ListIterator li = a1.ListIterator();
while(li.hasNest())
{
  Object obj = li.next();
if(obj.equals("aaaa"))
li.set("bbbbb");
}
作者: 钟伟杰    时间: 2013-4-27 00:16
ListIterator li = a1.ListIterator();    //调用a1集合中的ListIterator方法,返回一个ListIterator迭代器
while(li.hasNest())             //调用迭代器的hasNext()方法判断有没有元素,返回值boolean
{
Object obj = li.next();      //调用迭代器next()方法,取出集合中的元素,返回值Object类型,多态
if(obj.equals("aaaa"))          //判断next()方法取出的集合元素是不是"aaaa"
li.set("bbbbb");                 //是的话,改为"bbbbb"
}
作者: 黑马-张明    时间: 2013-4-27 00:19
本帖最后由 黑马-张明 于 2013-4-27 00:21 编辑
  1. ListIterator li = a1.ListIterator();
  2. //代码进行ListIterator对象li的各种功能检测
  3. //顺序输出li迭代器中现有的元素
  4. while(li.hasNest())
  5. {
  6.   Object obj = li.next();
  7. if(obj.equals("aaaa"))
  8. li.set("bbbbb");//通过使用ListIterator的set方法来改变li中的元素
  9. }
复制代码

作者: 尹丽峰    时间: 2013-4-27 00:20
a1.ListIterator();调用listiterator方法  li.hasNext 下一个元素 楼主貌似写错了next,  obj。equals aaaa 比较一下是不是aaaa  然后set为bbbbb;
作者: ゞSunペ果果つ    时间: 2013-4-27 07:20
{:soso_e113:}二楼解释的很清楚了
作者: lipingan0520    时间: 2013-4-27 08:14
  1. ListIterator li = a1.ListIterator(); //获取迭代器
  2. while(li.hasNest())//判断li迭代器中现有的元素,有返回true,没有返回fasle
  3. {
  4.    Object obj = li.next();  //获取第一个元素,给定义obj
  5.    f(obj.equals("aaaa"))//判断obj这个元素是否为aaaa
  6.    li.set("bbbbb");//如果满足条件,把aaaa改成bbbbb
  7. }
复制代码

作者: harborbest    时间: 2013-4-27 08:41
  1. ListIterator li = a1.ListIterator();  //获取迭代器
  2. while(li.hasNest())   //判断li迭代器中现有的元素,有继续迭代,没有返回fasle
  3. {
  4.    Object obj = li.next();  //获取元素,交给obj
  5.    f(obj.equals("aaaa"))//判断obj这个元素是否为aaaa
  6.    li.set("bbbbb");//如果满足条件,把aaaa改成bbbbb
  7. }
复制代码
我估计楼主不是这么简单的就让解释一下代码吧,应该是想知道ListIterator与Iterator的区别吧!
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。



作者: 袁梦希    时间: 2013-4-27 10:52
楼主你好   如果问题已经解决了,请把帖子的类型改为“已解决”{:soso_e181:}
作者: 可见    时间: 2013-4-27 10:56
不错 学习了~~~
作者: 黄玉昆    时间: 2013-4-27 22:31
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




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