【Java類集】_ListIterator介面筆記
本章目標:
掌握ListIterator與Iterator介面的關係及區別
掌握ListIterator介面的使用限制
3、具體內容
ListIterator介面
Iterator介面的主要功能是由前向後單向輸出,而此時如果想實現由後向前或者是由前向後的雙向輸出,則就必須使用Iterator的子介面————ListIterator。
LisIterator介面定義如下:
public interface ListIterator<E> extends Iterator<E>
雖然此介面可以進行雙向的輸出,但是遺憾的是Collection介面中並沒有定義可以為此類執行個體化的操作,只有List 介面中才存在了ListIterator介面的執行個體化操作
範例:完成雙向輸出
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListIteratorDemo01{ public static void main(String[] args){ List<String> all = new ArrayList<String>(); all.add("hello"); all.add("_"); all.add("world!!!"); ListIterator<String> iter = all.listIterator(); System.out.println("由前向後輸出"); while(iter.hasNext()){ String str = iter.next(); System.out.print(str+"、"); } System.out.println("\n由後向前輸出"); while(iter.hasPrevious()){ String str = iter.previous(); System.out.print(str+"、"); } }}
輸出:
由前向後輸出
hello、_、world!!!、
由後向前輸出
world!!!、_、hello、
此時,已經完成了雙向的輸出操作。
但是,在使用此操作的時候一定要注意一點:一定要先進行由前向後輸出,之後才能進行由後向前的輸出。
使用ListIterator還可以進行增加及替換元素
add()
set()
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class ListIteratorDemo01{ public static void main(String[] args){ List<String> all = new ArrayList<String>(); all.add("hello"); all.add("_"); all.add("world!!!"); ListIterator<String> iter = all.listIterator(); System.out.println("由前向後輸出"); while(iter.hasNext()){ String str = iter.next(); System.out.print(str+"、"); iter.set("LI-"+str); } System.out.println("\n由後向前輸出"); iter.add("LXH"); while(iter.hasPrevious()){ String str = iter.previous(); System.out.print(str+"、"); } }}
輸出:
由前向後輸出
hello、_、world!!!、
由後向前輸出
LXH、LI-world!!!、LI-_、LI-hello、
總結:
1.如果要想使用ListIteral只能依靠List介面完成。
2.如果要進行由後向前的輸出,則只能先進行由前向後的輸出。
3.對於此介面中的增加及修改操作瞭解即可。