首頁 > Java > java教程 > Java 列表迭代器

Java 列表迭代器

WBOY
發布: 2024-08-30 15:09:36
原創
1095 人瀏覽過

在Java中,ListIterator是一個雙向迭代器,有助於逐一迭代列表中的元素。它從 Java 1.2 版本開始提供,並擴展了 Iterator 介面。與普通迭代器不同,ListIterator 支援 CRUD 操作、前向和後向迭代。此外,由於遊標的位置位於呼叫 previous() 傳回的元素和呼叫 next() 傳回的元素之間,因此 listiterator 沒有目前元素。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法

以下是 Java ListIterator 的語法。

ListIterator<T> li = list.listIterator();
登入後複製

Java 中的 ListIterator 類別如何運作?

如同已經討論過的,Java ListIterator 是雙向迭代器,可以向前和向後遍歷。為了支援此功能,有兩組方法可用。

  • 正向方法,例如 hasNext()、next()、nextIndex()
  • 向後方向方法,例如 hasPrevious()、previous()、previousIndex()

這些方法將在下一節中詳細討論。

讓我們看看 ListIterator 是如何運作的。

1.建立姓名清單

List<String> nm = new ArrayList<String>();
nm.add("Ram");
nm.add("Jaanu");
nm.add("Elsa");
nm.add("Anna");
nm.add("payal");
登入後複製

2.建立一個ListIterator物件

//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 的方法

以下是 Java ListIterator 中使用的不同方法。

1.新增(E 榆樹)

元素 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());
}
}
}
登入後複製

輸出:

Java 列表迭代器

2. hasNext()

向前遍歷時,如果迭代器有下一個元素,則傳回 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());
}
}
}
登入後複製
登入後複製

輸出:

Java 列表迭代器

3.有上一個()

向後遍歷時,如果迭代器有下一個元素,則傳回 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());
}
}
}
登入後複製
登入後複製

輸出:

Java 列表迭代器

4.下一個()

將返回下一個元素,並且遊標位置將前進。

代碼:

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());
}
}
}
登入後複製
登入後複製

輸出:

Java 列表迭代器

5. nextIndex()

將傳回呼叫 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());
}
}
登入後複製

輸出:

Java 列表迭代器

6.上一個()

將返回上一個元素,並且遊標位置將向後移動。

代碼:

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());
}
}
}
登入後複製
登入後複製

輸出:

Java 列表迭代器

7. previousIndex()

將傳回呼叫 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());
} }
登入後複製

輸出:

Java 列表迭代器

8.刪除()

呼叫 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);
}
}
登入後複製

輸出:

Java 列表迭代器

9.設定(E e)

用指定元素取代 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);
}
}
登入後複製

輸出:

Java 列表迭代器

結論

ListIterator 是 Java 中的雙向迭代器,可以逐一迭代列表中的元素。與普通迭代器不同,ListIterator 支援 CRUD 操作。在本文中,詳細討論了 ListIterator 的不同面向。

以上是Java 列表迭代器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板