在使用java集合的时候,都需要使用iterator。但是java集合中还有一个迭代器listiterator,在使用list、arraylist、linkedlist和vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示:
这里假设集合list由四个元素list1、list2、list3和list4组成,当使用语句iterator it = list.iterator()时,迭代器it指向的位置是上图中iterator1指向的位置,当执行语句it.next()之后,迭代器指向的位置后移到上图iterator2所指向的位置。
首先看一下iterator和listiterator迭代器的方法有哪些。
iterator迭代器包含的方法有:
hasnext()
:如果迭代器指向位置后面还有元素,则返回true,否则返回falnext()
:返回集合中iterator指向位置后面的元素伪随机数remove()
:删除集合中iterator指向位置后面的元素listiterator迭代器包含的方法有:
add(e e)
: 将指定的元素插入列表,插入位置为迭代器当前位置之前hasnext()
:以正向遍历列表时,如果列表迭代器后面还有元素,则返回true,否则返回falhasprevious()
:如果以逆向遍历列表,列表迭代器前面还有元素,则返回true,否则返回falnext()
:返回列表中listiterator指向位置后面的元素nextindex()
:返回列表中listiterator所需位置后面元素的索引previous()
:返回列表中listiterator指向位置前面的元素previousindex()
:返回列表中listiterator所需位置前面元素的索引remove()
:从列表中删除next()或previous()返回的最后一个元素(有点拗口,意思就是对迭代器使用hasnext()方法时,删除listiterator指向位置后面的元素;当对迭代器使用hasprevious()方法时,删除listiterator指向位置前面的元素)t(e e)
:从列表中将next()或previous()返回的最后一个元素返回的最后一个元素更改为指定元素e都是迭代器,当需要对集合中元素进行遍历不需要干涉其遍历过程时,这两种迭代器都可以使用。
1.使用范围不同,iterator可以应用于所有的集合,t、list和map和这些集合的子类型。而listiterator只能用于list及其子类型。
2.listiterator
有add方法,可以向list中添加千术之王对象,而iterator不能。
3.listiterator
和iterator
都有hasnext()
和next()
方法,可以实现顺序向后遍历,但是listiterator有hasprevious()和previous()方法,可以实现逆向(顺序向前)遍历。iterator不可以。
4.listiterator可以定位当前索引写朋友的作文题目的位置,nextindex()
和previousindex()
可以实现。iterator没有此功能。
5.都可实现删除操作,但是listiterator可以实现对象的修改,t()方法可以实现。iterator仅能遍历,不能修改。
listiterator找汽修学校用法:
package com.collection;import java.util.linkedlist;import java.util.list;import java.util.listiterator;/** * @author 朱伟 * 链表中listiterator测试 * */public class listiteratortest {public static void main(string[] args) {// todo auto-generated method stublist<string> staff = new linkedlist<>();staff.add("zhuwei");staff.add("xuezhangbin");staff.add("taozhiwei");listiterator<string> iter = staff.listiterator();string first = iter.next();//删除zhuweiiter.remove();//把zhuwei改为simei//iter.t("simei");system.out.println("first:"+first);iter.add("xiaobai");//遍历list元素system.out.println("遍历list中元素,方法一:");for(string str : staff)system.out.println(str+" ");iter = staff.listiterator();system.out.println("遍历list中元素,方法二:");while(iter.hasnext()){system.out.println(iter.next());}}}印象深刻的一个人
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!
本文发布于:2023-04-04 22:19:41,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/f02034a0f77efc4f3d01a5601e7c1ac1.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:详解JAVA中ListIterator和Iterator的辨析.doc
本文 PDF 下载地址:详解JAVA中ListIterator和Iterator的辨析.pdf
留言与评论(共有 0 条评论) |