Java >> Tutoriel Java >  >> Java

Différences entre Iterator et ListIterator en Java

En java, nous verrons d'abord en quoi Iterator diffère de ListIterator ?

Itérateur

  • Iterator est une interface introduite en Java.
  • L'itérateur est unidirectionnel par nature (c'est-à-dire qu'il itère ou traverse un élément ou un objet dans une seule direction, c'est-à-dire vers l'avant)
  • Lors de l'itération d'un élément par Iterator, nous pouvons effectuer une opération de lecture et de suppression et nous ne pouvons effectuer aucune autre opération comme ajouter un objet, remplacer un objet.
  • Nous pouvons créer un objet Iterator en utilisant la méthode iterator() de l'interface Iterator.

Syntaxe :

    Interface_name object_name = Collection_method. Iterator_method

Exemple :

    Iterator itr = Set.iterator(); 

Iterator peut être utilisé dans List, Set, Queue, etc. et il prend également en charge d'autres interfaces du framework de collecte seul avec List.

Programme itérateur :

import java.util.*; 

class IteratorClass {
 public static void main(String[] args) {
  // Creating a Set interface object
  Set set = new HashSet();

  // By using add() method to add few elements in set
  set.add("Java");
  set.add("Python");
  set.add("C++");
  set.add("Ruby");
  set.add("C");


  // Creating an object of Iterator interface
  Iterator itr = set.iterator();

  // loop for traversing an element
  while (itr.hasNext()) {
   String str = (String) itr.next();
   if (str.equals("C"))
    itr.remove();
  }
  // Display elements of Set interface 
  System.out.println("The final list of Iterator :" + set);
 }
}

Sortie

E:\Programs>javac IteratorClass.java

E:\Programs>java IteratorClass
The final list of Iterator :[Ruby, Python, C++, Java]

En java, nous verrons d'abord en quoi ListIterator diffère d'Iterator ?

Itérateur de liste

  • ListIterator est une interface enfant d'Iterator introduite en Java.
  • ListIterator est un bidirectionnel par nature (c'est-à-dire qu'il itère ou traverse un élément ou un objet dans les deux sens, c'est-à-dire le sens avant et le sens arrière).
  • Lors de l'itération d'un élément par ListIterator, nous pouvons effectuer une opération de lecture, de suppression, de remplacement et d'ajout et nous pouvons effectuer toute autre opération.
  • Nous pouvons créer un objet ListIterator en utilisant la méthode listIterator() de l'interface ListIterator.

Syntaxe :

    Interface_name(or class_name) object_name = Collection_method.ListIterator_method

Exemple :

    ListIterator litr = List.listIterator(); 

ListIterator ne peut être utilisé que dans List et ne prend pas en charge les autres interfaces du framework de collecte telles que Set, Queue, etc.

Programme ListIterator :

import java.util.*;

class ListIteratorClass {
 public static void main(String[] args) {
  // Creating a LinkedList object
  LinkedList ll = new LinkedList();

  // By using add() method to add few elements in linked list
  ll.add("Java");
  ll.add("Python");
  ll.add("C++");
  ll.add("Ruby");
  ll.add("C");

  // Creating an object of ListIterator interface
  ListIterator litr = ll.listIterator();

  // loop for traversing an element
  while (litr.hasNext()) {
   String str = (String) litr.next();

   // We are removing an element by using remove() method
   if (str.equals("C"))
    litr.remove();

   // We are replacing an element by using set() method
   if (str.equals("C++"))
    litr.set("TOC");

   // We are adding an element by using add() method
   if (str.equals("C"))
    litr.add("Data Structure");
  }

  // Display elements of Set interface 
  System.out.println("The final list of ListIterator :" + ll);
 }
}

Sortie

E:\Programs>javac ListIteratorClass.java

E:\Programs>java ListIteratorClass
The final list of ListIterator :[Java, Python, TOC, Ruby, Data Structure]

Balise Java