JavaのListIteratorとIteratorの詳細な説明と分析
Java コレクションを使用する場合は、Iterator を使用する必要があります。ただし、Java コレクションにはイテレータ ListIterator もあり、List、ArrayList、LinkedList、Vector を使用するときに使用できます。これら 2 つのイテレータの違いは何ですか?以下で詳しく分析してみましょう。ここで明確にする必要があるのは、次の図に示すように、反復子が指す位置は要素の前の位置であるということです:
ここでは、コレクション List が 4 つの要素 List1、 List2、List3、List4 ステートメント It = List.Iterator() を使用する場合、イテレータが指す位置は、ステートメント it.next() が実行された後、上図の Iterator1 が指す位置になります。 iterator が指す位置は、上図の Iterator2 が指す位置に移動します。
まず、Iterator と ListIterator のメソッドを見てみましょう。
Iterator には以下のメソッドが含まれます:
hasNext(): Iterator が指す位置の後に要素がある場合は true を返し、そうでない場合は false を返します
next(): Iterator が指す位置の後の要素を返しますset
Remove(): Iterator が指す位置以降のコレクション内の要素を削除します。 ListIterator に含まれるメソッドは次のとおりです:
add(E e): 指定された要素をリストに挿入し、挿入位置を指定します。
hasNext(): リストを順方向に走査するとき、リスト反復子の後に要素がある場合は true を返し、そうでない場合は false を返します。
hasPrevious(): 走査する場合逆方向のリストで、リスト反復子の前に要素がある場合は true を返し、それ以外の場合は false を返します
next(): ListIterator が指す位置以降のリスト内の要素を返します
nextIndex(): を返しますリスト内の ListIterator によって要求される位置の後の要素のインデックス
previous(): ListIterator によって指定される位置より前のリスト内の要素を返します
previousIndex(): 必要な位置の前の要素のインデックスを返しますリスト内の ListIterator の
remove(): next() またはprevious() によって返された最後の要素をリストから削除します (少し紛らわしいですが、 iterator で hasNext() を使用することを意味します) メソッド、位置の後の要素を削除しますListIterator が指す; イテレータで hasPrevious() メソッドを使用する場合、ListIterator が指す位置より前の要素を削除します)
set(E e): リストから next() またはprevious() を削除します 返される最後の要素返された要素は、指定された要素 e
one に変更されます。同じもの
は反復子です。走査プロセスを妨げずにコレクション内の要素を走査する必要がある場合、両方の反復子を使用できます。
2.違い
1. 使用範囲が異なるため、Iterator はすべてのコレクション、Set、List、Map とこれらのコレクションのサブタイプに適用できます。 ListIterator は、List とそのサブタイプにのみ使用できます。
2. ListIterator にはオブジェクトを List に追加できる add メソッドがありますが、Iterator には追加できません。
3. ListIterator と Iterator の両方には、順次後方走査を実現できる hasNext() メソッドと next() メソッドがありますが、ListIterator には逆方向 (逐次前方) 走査を実現できる hasPrevious() メソッドとPrevious() メソッドがあります。イテレータではできません。
4.ListIterator は現在のインデックスの位置を見つけることができ、nextIndex() とpreviousIndex() はこれを実現できます。イテレータにはこの機能はありません。
5. どちらも削除操作を実装できますが、ListIterator はオブジェクトの変更を実装でき、set() メソッドはそれを実現できます。イテレータはトラバースのみ可能であり、変更することはできません。
3: Iterator と ListIterator の使用例
ListIterator の使用例:
package com.collection;
import java.util.LinkedList;
import java.util.List;import java.util.ListIterator;
public class ListIteratorTest { public static void main(String[] args) { // TODO Auto-generated method stub List<String> staff = new LinkedList<>(); staff.add("zhuwei"); staff.add("xuezhangbin"); staff.add("taozhiwei"); ListIterator<String> iter = staff.listIterator(); String first = iter.next(); //删除zhuwei iter.remove(); //把zhuwei改为simei //iter.set("simei"); System.out.println("first:"+first); iter.add("xiaobai"); //遍历List元素 System.out.println("遍历List中元素,方法一:"); for(String str : staff) System.out.println(str+" "); iter = staff.listIterator(); System.out.println("遍历List中元素,方法二:"); while(iter.hasNext()) { System.out.println(iter.next()); } } }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java プログラミングでは、Iterator インターフェイスと Iterable インターフェイスは、コレクション内の要素を処理するための重要なツールです。 Iterator インターフェイスは、コレクション要素に反復的にアクセスするためのメソッドを提供します。一方、Iterable インターフェイスは、Iterator を介してコレクション内の要素にアクセスできるように、コレクションの反復可能性を定義します。この 2 つの緊密な連携により、コレクション要素を横断するための一般的な方法が提供されます。 Iterator インターフェイス Iterator インターフェイスは次のメソッドを定義します。 booleanhasNext(): コレクション内にまだ要素が存在するかどうかを確認します。 Enext(): コレクション内の次の要素を返します。 voidremove(): 現在の要素を削除します。反復可能

Iterator インターフェイス Iterator インターフェイスは、コレクションを走査するために使用されるインターフェイスです。 hasNext()、next()、remove() などのいくつかのメソッドが提供されます。 hasNext() メソッドは、コレクション内に次の要素があるかどうかを示すブール値を返します。 next() メソッドは、コレクション内の次の要素を返し、それをコレクションから削除します。 Remove() メソッドは、コレクションから現在の要素を削除します。次のコード例は、Iterator インターフェイスを使用してコレクションを反復処理する方法を示しています。 Listnames=Arrays.asList("John","Mary","Bob");Iterator

概念的な違い: イテレータ: イテレータは、コレクションから値を取得するイテレータを表すインターフェイスです。 MoveNext()、Current()、Reset() などのメソッドを提供し、コレクション内の要素を横断して現在の要素を操作できるようにします。 Iterable: Iterable は、反復可能なオブジェクトを表すインターフェイスでもあります。これは、コレクション内の要素の走査を容易にする Iterator オブジェクトを返す Iterator() メソッドを提供します。使用法: Iterator: Iterator を使用するには、まず Iterator オブジェクトを取得し、次に MoveNext() メソッドを呼び出して次のオブジェクトに移動する必要があります。

Iterator の概要Iterator は、コレクションを走査するための Java のインターフェイスです。これは、コレクション内の要素に順次アクセスできるようにする一連のメソッドを提供します。 Iterator を使用すると、List、Set、Map などのコレクション型を反復処理できます。デモコード: Listlist=newArrayList();list.add("one");list.add("two");list.add("three");Iteratoriterator=list.iterator();while(iter

Java では、コレクションは、これらの要素を保存、取得、操作するための統一インターフェイスとメソッドを提供する要素のコレクションです。 Iterator と Iterable は、コレクション要素を走査するための共通メカニズムを提供する 2 つの重要な Java インターフェイスです。 Iterator インターフェイスは、コレクションを走査するための hasNext() メソッドと next() メソッドを定義します。 hasNext() メソッドは、コレクション内に未探索の要素があるかどうかを確認するために使用され、 next() メソッドは、現在の要素を返して次の要素に移動するために使用されます。 Iterable インターフェイスは、コレクション内の要素を走査するための Iterator オブジェクトを返す iterator() メソッドを定義します。

Iterator インターフェイス Iterator インターフェイスは、コレクションを走査するための Java コレクション フレームワークの低レベル インターフェイスです。これは 2 つの主要なメソッドを定義します。 hasNext(): コレクション内にさらに要素があるかどうかを確認します。 next(): コレクション内の次の要素を返します。 Iterator インターフェイスは、コレクションから現在の要素を削除するために使用される、remove() メソッドなどのいくつかのオプションのメソッドも定義します。 Iterator インターフェイスの使用 Iterator インターフェイスを使用して、次の手順でコレクションを走査できます。 コレクションの Iterator オブジェクトを取得します。 hasNext() メソッドを使用して、コレクション内にさらに要素があるかどうかを確認します。さらに要素がある場合は、 next() メソッドを使用して次の要素を取得します

イテレーター (Iterator) と Iterable オブジェクト (Iterable) は、Java コレクション フレームワークの 2 つの非常に重要なインターフェイスです。これらを使用すると、コレクションの具体的な実装を知らなくても、コレクション内の要素を反復処理できます。 Iterator インターフェイスは、hasNext() や next() など、コレクションを走査するためのメソッドを定義します。 hasNext() メソッドはコレクション内にさらに要素があるかどうかを確認し、 next() メソッドはコレクション内の次の要素を返します。 Iterable インターフェイスは、Iterator を作成するメソッドである iterator() メソッドを定義します。このメソッドは、コレクションを反復処理するために使用できる Iterator オブジェクトを返します。以下はIteraを使用しています

Java ドキュメントの解釈: HashSet クラスの iterator() メソッドの使用法の詳細な説明。特定のコード例が必要です。Java プログラミングでは、HashSet は一般的に使用されるコレクション クラスの 1 つです。これは Set インターフェイスを実装し、 AbstractSet クラス。 HashSet クラスの iterator() メソッドは、HashSet 内の要素を走査するためのイテレータ オブジェクトを返すために使用されます。この記事では、HashSet クラスの iterator() メソッドの使い方を詳しく説明します。
