Java中ListIterator和Iterator详解与辨析
在使用java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示:
这里假设集合List由四个元素List1、List2、List3和List4组成,当使用语句Iterator it = List.Iterator()时,迭代器it指向的位置是上图中Iterator1指向的位置,当执行语句it.next()之后,迭代器指向的位置后移到上图Iterator2所指向的位置。
首先看一下Iterator和ListIterator迭代器的方法有哪些。
Iterator迭代器包含的方法有:
hasNext():如果迭代器指向位置后面还有元素,则返回 true,否则返回false
next():返回集合中Iterator指向位置后面的元素
remove():删除集合中Iterator指向位置后面的元素
ListIterator迭代器包含的方法有:
add(E e): 将指定的元素插入列表,插入位置为迭代器当前位置之前
hasNext():以正向遍历列表时,如果列表迭代器后面还有元素,则返回 true,否则返回false
hasPrevious():如果以逆向遍历列表,列表迭代器前面还有元素,则返回 true,否则返回false
next():返回列表中ListIterator指向位置后面的元素
nextIndex():返回列表中ListIterator所需位置后面元素的索引
previous():返回列表中ListIterator指向位置前面的元素
previousIndex():返回列表中ListIterator所需位置前面元素的索引
remove():从列表中删除next()或previous()返回的最后一个元素(有点拗口,意思就是对迭代器使用hasNext()方法时,删除ListIterator指向位置后面的元素;当对迭代器使用hasPrevious()方法时,删除ListIterator指向位置前面的元素)
set(E e):从列表中将next()或previous()返回的最后一个元素返回的最后一个元素更改为指定元素e
一.相同点
都是迭代器,当需要对集合中元素进行遍历不需要干涉其遍历过程时,这两种迭代器都可以使用。
二.不同点
1.使用范围不同,Iterator可以应用于所有的集合,Set、List和Map和这些集合的子类型。而ListIterator只能用于List及其子类型。
2.ListIterator有add方法,可以向List中添加对象,而Iterator不能。
3.ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator不可以。
4.ListIterator可以定位当前索引的位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
5.都可实现删除操作,但是ListIterator可以实现对象的修改,set()方法可以实现。Iterator仅能遍历,不能修改。
三: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()); } } }

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En programmation Java, les interfaces Iterator et Iterable sont des outils importants pour traiter les éléments des collections. L'interface Iterator fournit des méthodes d'accès itératif aux éléments de la collection, tandis que l'interface Iterable définit l'itération de la collection afin que les éléments de la collection soient accessibles via Iterator. L'étroite coopération entre les deux nous fournit une méthode générale pour parcourir les éléments de la collection. Interface Iterator L'interface Iterator définit les méthodes suivantes : booleanhasNext() : Vérifiez s'il y a encore des éléments dans la collection. Enext() : renvoie l'élément suivant de la collection. voidremove() : supprime l'élément actuel. Itérable

Interface Iterator L'interface Iterator est une interface utilisée pour parcourir les collections. Il fournit plusieurs méthodes, notamment hasNext(), next() et remove(). La méthode hasNext() renvoie une valeur booléenne indiquant s'il existe un élément suivant dans la collection. La méthode next() renvoie l'élément suivant de la collection et le supprime de la collection. La méthode Remove() supprime l'élément actuel de la collection. L'exemple de code suivant montre comment utiliser l'interface Iterator pour parcourir une collection : Listnames=Arrays.asList("John","Mary","Bob");Iterator

Différences conceptuelles : Itérateur : Iterator est une interface qui représente un itérateur qui obtient les valeurs d'une collection. Il fournit des méthodes telles que MoveNext(), Current() et Reset(), vous permettant de parcourir les éléments de la collection et d'opérer sur l'élément actuel. Iterable : Iterable est également une interface, représentant un objet itérable. Il fournit la méthode Iterator(), qui renvoie un objet Iterator pour faciliter la traversée des éléments de la collection. Utilisation : Iterator : Pour utiliser Iterator, vous devez d'abord obtenir un objet Iterator, puis appeler la méthode MoveNext() pour passer au suivant.

Introduction à IteratorIterator est une interface en Java permettant de parcourir des collections. Il fournit un ensemble de méthodes qui vous permettent d'accéder aux éléments d'une collection de manière séquentielle. Vous pouvez utiliser Iterator pour parcourir des types de collections tels que List, Set et Map. Code de démonstration : Listlist=newArrayList();list.add("one");list.add("two");list.add("trois");Iteratoriterator=list.iterator();while(iter

En Java, une collection est une collection d'éléments qui fournit une interface unifiée et des méthodes pour stocker, récupérer et exploiter ces éléments. Iterator et Iterable sont deux interfaces Java importantes qui fournissent un mécanisme commun pour parcourir les éléments de la collection. L'interface Iterator définit les méthodes hasNext() et next() pour parcourir les collections. La méthode hasNext() est utilisée pour vérifier s'il existe des éléments non traversés dans la collection, et la méthode next() est utilisée pour renvoyer l'élément actuel et le déplacer vers l'élément suivant. L'interface Iterable définit la méthode iterator(), qui renvoie un objet Iterator pour parcourir les éléments de la collection.

Interface Iterator L'interface Iterator est une interface de bas niveau dans le cadre de collection Java pour parcourir les collections. Il définit deux méthodes principales : hasNext() : vérifie s'il y a plus d'éléments dans la collection. next() : renvoie l'élément suivant de la collection. L'interface Iterator définit également certaines méthodes facultatives, telles que la méthode remove(), qui est utilisée pour supprimer l'élément actuel de la collection. Utilisation de l'interface Iterator Vous pouvez utiliser l'interface Iterator pour parcourir une collection en procédant comme suit : Obtenez l'objet Iterator de la collection. Utilisez la méthode hasNext() pour vérifier s'il y a plus d'éléments dans la collection. S'il y a plus d'éléments, utilisez la méthode next() pour obtenir l'élément suivant

Iterator (Iterator) et Iterable object (Iterable) sont deux interfaces très importantes dans le framework de collection Java. Ils vous permettent de parcourir les éléments d'une collection sans connaître l'implémentation spécifique de la collection. L'interface Iterator définit des méthodes pour parcourir les collections, notamment hasNext() et next(). La méthode hasNext() vérifie s'il y a plus d'éléments dans la collection, tandis que la méthode next() renvoie l'élément suivant dans la collection. L'interface Iterable définit une méthode pour créer un Iterator, la méthode iterator(). Cette méthode renvoie un objet Iterator qui peut être utilisé pour parcourir la collection. Ce qui suit utilise Itera

Interprétation de la documentation Java : Explication détaillée de l'utilisation de la méthode iterator() de la classe HashSet. Des exemples de code spécifiques sont nécessaires. En programmation Java, HashSet est l'une des classes de collection couramment utilisées. Elle implémente l'interface Set et hérite de la. Classe AbstractSet. La méthode iterator() de la classe HashSet est utilisée pour renvoyer un objet itérateur pour parcourir les éléments du HashSet. Cet article expliquera en détail l'utilisation de la méthode iterator() de la classe HashSet, et
