在Java中,ListIterator是一個雙向迭代器,有助於逐一迭代列表中的元素。它從 Java 1.2 版本開始提供,並擴展了 Iterator 介面。與普通迭代器不同,ListIterator 支援 CRUD 操作、前向和後向迭代。此外,由於遊標的位置位於呼叫 previous() 傳回的元素和呼叫 next() 傳回的元素之間,因此 listiterator 沒有目前元素。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法
以下是 Java ListIterator 的語法。
ListIterator<T> li = list.listIterator();
如同已經討論過的,Java ListIterator 是雙向迭代器,可以向前和向後遍歷。為了支援此功能,有兩組方法可用。
這些方法將在下一節中詳細討論。
讓我們看看 ListIterator 是如何運作的。
List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); nm.add("Elsa"); nm.add("Anna"); nm.add("payal");
//get list iterator ListIterator<String> li =nm.listIterator(); In the beginning, the Cursor of ListIterator will be pointed before the first element in the List. On calling the methods li.hasNext() and li.next() in a while loop, the cursor will be moved to the last element in the list. In order to start traversing from last, li.hasPrevious( ) and li.previous() methods will be called. On reaching the first element and again calling the same method will return a false value.
以下是 Java ListIterator 中使用的不同方法。
元素 elm 將會被插入到列表中。 代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { public static void main(String a[]) { ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); //add the elements to the list nm.add("Ram"); nm.add("Jaanu"); nm.add("Elsa"); nm.add("Anna"); nm.add("payal"); //get list iterator li=nm.listIterator(); System.out.println("List is :"); while(li.hasNext()){ System.out.println(li.next()); } } }
輸出:
向前遍歷時,如果迭代器有下一個元素,則傳回 True。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { public static void main(String a[]) { ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); //get list iterator li=nm.listIterator(); System.out.println("List is :"); //iterates if next element is present in forward direction while(li.hasNext()){ System.out.println(li.next()); } } }
輸出:
向後遍歷時,如果迭代器有下一個元素,則傳回 True。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); //get list iterator li=nm.listIterator(); System.out.println("Traversal in forward direction::"); while(li.hasNext()){ System.out.println(li.next()); } System.out.println("\nTraversal in backward direction:"); while(li.hasPrevious()){ System.out.println(li.previous()); } } }
輸出:
將返回下一個元素,並且遊標位置將前進。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { public static void main(String a[]) { ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); //get list iterator li=nm.listIterator(); System.out.println("List is :"); //iterates if next element is present in forward direction while(li.hasNext()){ System.out.println(li.next()); } } }
輸出:
將傳回呼叫 next() 時傳回的元素的索引。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); nm.add("Khan"); nm.add("Alia"); nm.add("Jhanvi"); //get list iterator li=nm.listIterator(); System.out.println("The index of first element : " + li.nextIndex()); li.next(); System.out.println("The index of second element : " + li.nextIndex()); li.next(); System.out.println("The index of third element : " + li.nextIndex()); li.next(); System.out.println("The index of fourth element : " + li.nextIndex()); li.next(); System.out.println("The index of fifth element : " + li.nextIndex()); } }
輸出:
將返回上一個元素,並且遊標位置將向後移動。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); //get list iterator li=nm.listIterator(); System.out.println("Traversal in forward direction::"); while(li.hasNext()){ System.out.println(li.next()); } System.out.println("\nTraversal in backward direction:"); while(li.hasPrevious()){ System.out.println(li.previous()); } } }
輸出:
將傳回呼叫 previous() 時傳回的元素的索引。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); nm.add("Khan"); nm.add("Alia"); nm.add("Jhanvi"); //get list iterator li=nm.listIterator(); System.out.println("The index of first element : " + li.previousIndex()); li.next(); System.out.println("The index of second element : " + li.previousIndex()); li.next(); System.out.println("The index of third element : " + li.previousIndex()); li.next(); System.out.println("The index of fourth element : " + li.previousIndex()); li.next(); System.out.println("The index of fifth element : " + li.previousIndex()); } }
輸出:
呼叫 next() 或 previous() 傳回的最後一個元素將會被刪除。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); nm.add("Kavya"); nm.add("Dileep"); nm.add("Sam"); nm.add("Anna"); //get list iterator li=nm.listIterator(); System.out.println("List is : " + nm); li.next(); li.next(); li.remove(); System.out.println("After calling remove() method : " + nm); } }
輸出:
用指定元素取代 next() 或 previous() 傳回的最後一個元素(可選操作)。
代碼:
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListIterExample { //main method public static void main(String a[]) { // ListIterator<String> li = null; List<String> nm = new ArrayList<String>(); nm.add("Ram"); nm.add("Jaanu"); nm.add("Kavya"); nm.add("Dileep"); nm.add("Sam"); nm.add("Anna"); //get list iterator li=nm.listIterator(); System.out.println("List is : " + nm); li.next(); li.next(); li.set("Anjali"); System.out.println("After calling set() method : " + nm); } }
輸出:
ListIterator 是 Java 中的雙向迭代器,可以逐一迭代列表中的元素。與普通迭代器不同,ListIterator 支援 CRUD 操作。在本文中,詳細討論了 ListIterator 的不同面向。
以上是Java 列表迭代器的詳細內容。更多資訊請關注PHP中文網其他相關文章!