[JAVA] Iterator dans Liste avec Node
hyper
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je désir parcourir ma liste chainée, sans utiliser les méthodes d'une LinkedList, à l'aide d'un itérateur qui parcourerait les différends noeuds.
Voici mon code:
-------------------------------------------------------------------------
import java.util.*;
/**
* Write a description of class ListNode here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ListNode
{
//v d'instance
private Node first;
private Node last;
private int size;
//ma classe de noeuds
public class Node {
CD element;
Node next;
}
//Constructeur d'une liste vide
public ListNode (){
this.first=null;
this.last=null;
this.size=0;
}
//Ajout d'un élément dans la liste
public void add (CD e) {
if (first==null) {
Node newNode = new Node ();
newNode.element = e;
first=newNode;
last=first;
size++;
}
Node curent = first;
while (curent.next != null) {
curent = curent.next;
}
Node lastNode = new Node ();
curent.next=lastNode;
lastNode.element = e;
size++;
}
//Affiche l'entièreté des éléments (des CD) contenu dans ma liste
public void show () {
if (first==null) {}
Iterator <Node> it = first.iterator();
while (it.hasNext()){
System.out.println (it.element.next());}
}
}-----------------------------------------------------------------------------------------
l'erreur se situe dans la méthode show, il ne reconnait pas la méthode iterator()
Pour l'affichage, ça devrait allé ? Je peux aller rechercher mon element de puis l'itérateur qui parcours les noeuds ?
merci de votre aide
je désir parcourir ma liste chainée, sans utiliser les méthodes d'une LinkedList, à l'aide d'un itérateur qui parcourerait les différends noeuds.
Voici mon code:
-------------------------------------------------------------------------
import java.util.*;
/**
* Write a description of class ListNode here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ListNode
{
//v d'instance
private Node first;
private Node last;
private int size;
//ma classe de noeuds
public class Node {
CD element;
Node next;
}
//Constructeur d'une liste vide
public ListNode (){
this.first=null;
this.last=null;
this.size=0;
}
//Ajout d'un élément dans la liste
public void add (CD e) {
if (first==null) {
Node newNode = new Node ();
newNode.element = e;
first=newNode;
last=first;
size++;
}
Node curent = first;
while (curent.next != null) {
curent = curent.next;
}
Node lastNode = new Node ();
curent.next=lastNode;
lastNode.element = e;
size++;
}
//Affiche l'entièreté des éléments (des CD) contenu dans ma liste
public void show () {
if (first==null) {}
Iterator <Node> it = first.iterator();
while (it.hasNext()){
System.out.println (it.element.next());}
}
}-----------------------------------------------------------------------------------------
l'erreur se situe dans la méthode show, il ne reconnait pas la méthode iterator()
Pour l'affichage, ça devrait allé ? Je peux aller rechercher mon element de puis l'itérateur qui parcours les noeuds ?
merci de votre aide
A voir également:
- [JAVA] Iterator dans Liste avec Node
- Jeux java itel - Télécharger - Jeux vidéo
- Liste déroulante excel - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
1 réponse
first.iterator();
first est de type Node.
Ta classe Node ne possède aucune méthode qui s'appelle Iterator. Les structures de données de base de JAva en possèdent une, mais si tu n'as pas le droit de les utiliser alors il va falloir coder ta propre méthode "iterator()".
D'autre part, ça m'étonnerai que ce que tu souhaites faire est d'avoir un noeud qui renvoie un iterateur. Ce serait plutot la liste ListNode elle-même qui devrait pouvoir en fournir un, qui pointerait vers le premier ou le dernier au départ.
first est de type Node.
Ta classe Node ne possède aucune méthode qui s'appelle Iterator. Les structures de données de base de JAva en possèdent une, mais si tu n'as pas le droit de les utiliser alors il va falloir coder ta propre méthode "iterator()".
D'autre part, ça m'étonnerai que ce que tu souhaites faire est d'avoir un noeud qui renvoie un iterateur. Ce serait plutot la liste ListNode elle-même qui devrait pouvoir en fournir un, qui pointerait vers le premier ou le dernier au départ.