列表迭代器ListIterator的用法
生活随笔
收集整理的這篇文章主要介紹了
列表迭代器ListIterator的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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如果并發執行操作,迭代器會出現不確定性行為。
如:
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);} }
總結
以上是生活随笔為你收集整理的列表迭代器ListIterator的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微博技术专家陈波:百亿级访问量的应用如何
- 下一篇: 阿里技术解密:全链路压测体系建设方案的思