在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中文网其他相关文章!