ホームページ  >  記事  >  Java  >  Javaリストイテレータ

Javaリストイテレータ

WBOY
WBOYオリジナル
2024-08-30 15:09:361065ブラウズ

Java では、ListIterator はリスト内の要素を 1 つずつ反復するのに役立つ双方向イテレーターです。これはバージョン Java 1.2 から利用可能であり、インターフェース Iterator を拡張します。通常のイテレータとは異なり、ListIterator は CRUD 操作、前方および後方の反復をサポートします。さらに、カーソルの位置はprevious()の呼び出しで返される要素とnext()の呼び出しで返される要素の間にあるため、listiteratorには現在の要素がありません。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文

以下は Java ListIterator の構文です。

ListIterator<T> li = list.listIterator();

Java では ListIterator クラスはどのように機能しますか?

すでに説明したように、Java ListIterator は、順方向と逆方向にトラバースする双方向イテレーターです。この機能をサポートするには、2 セットのメソッドを使用できます。

  • 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. add(エルム)

要素 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. hasPrevious()

逆方向への走査中に反復子に次の要素がある場合、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. set(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 は、リスト内の要素を 1 つずつ反復する Java の双方向反復子です。通常のイテレータとは異なり、ListIterator では CRUD 操作がサポートされています。この記事では、ListIterator のさまざまな側面について詳しく説明します。

以上がJavaリストイテレータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JSP ユースビーン次の記事:JSP ユースビーン