列表迭代器ListIterator的用法
2014-06-07 11:31
190 查看
ListIterator的父接口是Iterator,是List接口中特有的迭代器。
ListIterator在Iterator的基础上,又新添了很多方法:
Iterator中的方法:
1、判断是否有下一个元素:hasNext();
2、获取下一个元素: next();
3、删除迭代器指向的元素:remove();
ListIterator新添的方法:
4、判断是否有前一个元素:hasPrevious();
5、获取前一个元素: previous();
6、添加元素: add(e);
7、获取next后续元素的索引: nextIndex();
8、获取previous后续元素的索引:previousIndex();
9、替换指定元素: set(E e);
使用ListIterator的好处:可以并发执行操作,Iterator不能,Iterator如果并发执行操作,迭代器会出现不确定性行为。
如:
使用ListIterator就可以解决这种异常!
代码如下:
ListIterator在Iterator的基础上,又新添了很多方法:
Iterator中的方法:
1、判断是否有下一个元素:hasNext();
2、获取下一个元素: next();
3、删除迭代器指向的元素:remove();
ListIterator新添的方法:
4、判断是否有前一个元素:hasPrevious();
5、获取前一个元素: previous();
6、添加元素: add(e);
7、获取next后续元素的索引: nextIndex();
8、获取previous后续元素的索引:previousIndex();
9、替换指定元素: set(E e);
使用ListIterator的好处:可以并发执行操作,Iterator不能,Iterator如果并发执行操作,迭代器会出现不确定性行为。
如:
package list_set; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Main { public static void main(String[] args) { List list=new ArrayList(); listIteratorDemo(list); } public static void listIteratorDemo(List list) { list.add("abc1"); list.add("abc2"); list.add("abc3"); list.add("abc4"); // 迭代器 Iterator it=list.iterator(); while(it.hasNext()) { //System.out.println(it.next()); Object obj=it.next(); // ConcurrentModificationException并发修改异常 if(obj.equals("abc2")) { list.add("hello"); } System.out.println(obj); } } }
使用ListIterator就可以解决这种异常!
代码如下:
package list_set; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class Main { public static void main(String[] args) { List list=new ArrayList(); listIteratorDemo2(list); } private static void listIteratorDemo2(List list) { list.add("abc1"); list.add("abc2"); list.add("abc3"); list.add("abc4"); // 获取列表迭代器 ListIterator it=list.listIterator(); while(it.hasNext()) { Object obj=it.next(); if(obj.equals("abc2")) { it.add("hello"); } System.out.println(obj); } System.out.println(list); } }
相关文章推荐
- java Iterator和ListIterator的区别和用法
- List和ListIterator的常见用法及特性
- 【JAVA语法】持有对象--Java中迭代器listIterator的用法
- (63)ListIterator用法、List均有的增删改查
- ListIterator用法
- ListIterator的用法
- java集合中list集合基本用法及List集合特有的迭代器ListIterator
- List集合ListIterator和Iterator迭代器区别与用法
- 集合的ListIterator的用法
- Iterator和ListIterator的用法
- javascript入门系列演示·三种弹出对话框的用法实例
- at命令的用法
- Log4net的用法
- IFrame用法
- window.dialogArguments,showModalDialog()的用法
- View的setTag()和getTag()的用法
- oracle 的to_char、to_number、to_date用法
- C#Lambda表达式的用法
- Find–atime –ctime –mtime的用法与区别总结
- SQL SERVER自带调试工具SQL Server Profiler简单用法