IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[Collections] hasPrevious() et previous() sur Iterateur de List


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Par défaut [Collections] hasPrevious() et previous() sur Iterateur de List
    Bonjour à tous,

    Voila je viens de me mettre à parser du XML depuis java et, alors que tout allait pour le mieux dans le meilleur des mondes, la commande hasPrevious() et previous() que j'effectue sur un l'itérateur d'une liste, ne sont pas des méthodes reconnues par le compilateur ...???

    Chose bizarre car juste avant j'utilise la fonction hasNext() et next ...

    hasPrevious() et previous ne marche-t'elle que sur des LinkedList ???

    Si oui comment retourner à un élément précédent avec la fonction getChildren(String s) du package JDOM qui renvoi une liste d'élément du document XML et non une LinkedList ...

    Voici la partie du code concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.*;
    import java.util.List;
    import java.util.Iterator;
    import java.util.LinkedList;
    public class Sax{
    	private org.jdom.Document document;
    	private Element racine;
    	private Element courrant;
    	private boolean val;
    	private Iterator i;
    	public Sax() {
    		// On crée une instance de saxbuilder
    		SAXBuilder sxb = new SAXBuilder();
    		try{
    			// Création d'un nouveau document JDOM sur le fichier soldat.xml le parsing est terminé
    			this.document = sxb.build(new File("soldat.xml"));
    		}
    		catch(Exception e){}
    		// On initialise un nouvel élément racine avec celle du document
    		this.racine = document.getRootElement();
    	}
    	public org.jdom.Document returnDoc(){
    		return this.document;
    	}
    	public Element returnEle(){
    		return this.racine;
    	}
    	public boolean rechObjXml(String str){
    		List soldat = racine.getChildren("soldat");
    		i = soldat.iterator();
    		while(i.hasNext() && !val){
    			courrant = (Element)i.next();
    			Attribute type = courrant.getAttribute("class");
    			String letype = type.getValue();
    			if(letype.equals(str)) val=true;
    		}
    		return val;
    	}
    	public boolean objSuivant(String str){
    		val=false;
    		while(i.hasNext() && !val){
    			courrant = (Element)i.next();
    			Attribute type = courrant.getAttribute("class");
    			String letype = type.getValue();
    			if(letype.equals(str)) val=true;
    		}
    		return val;
    	}
    	public boolean objPrecedent(String str){
    		val=false;
    		while(i.hasPrevious() && !val){
    			courrant = (Element)i.previous();
    			Attribute type = courrant.getAttribute("class");
    			String letype = type.getValue();
    			if(letype.equals(str)) val=true;
    		}
    		return val;
    	}
    }



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    en passant par un iterateur, tu n'a que les methodes next() et hasNext() de disponible (cf. http://java.sun.com/j2se/1.4.2/docs/.../Iterator.html)
    Si tu veux revenir en arriere dans ta liste utilise la methode "Object get(int index)" de la classe LinkedList (cf. http://java.sun.com/j2se/1.4.2/docs/...inkedList.html) ou transforme ta liste en tableau grace a la methode "Object[] toArray()" pour avoir un tableau d'object et ensuite il faut que tu tienne un index de la position courante et puis tu accede directement a tes objects a la position que tu le souhaite.
    Le choix entre l'une ou l'autre des solutions depend des qualité attendu de ton prog. Si tu utiliser la methode get, l'acces aux elements sera plus long, mais moins couteux en memoire que d'utiliser la methode toArray()

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Par défaut
    Et bien je te remercie pour cette réponse de qualité

    A bientot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. clic sur zone de liste pour validation
    Par ormoy28 dans le forum Access
    Réponses: 7
    Dernier message: 11/05/2006, 11h03
  2. Question sur Zone de Liste !
    Par Orakle dans le forum IHM
    Réponses: 3
    Dernier message: 25/11/2005, 09h38
  3. Test sur formulaire avec liste des erreurs
    Par Nicos77 dans le forum Langage
    Réponses: 37
    Dernier message: 17/11/2005, 10h22
  4. Acess2k3: Bande noire sur zone de liste différente
    Par uloaccess dans le forum Access
    Réponses: 5
    Dernier message: 28/10/2005, 17h57
  5. Evènement sur zone de liste
    Par Mout85 dans le forum IHM
    Réponses: 3
    Dernier message: 20/06/2005, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo