Iterator

Iterator - Java - Programmation

Marsh Posté le 02-05-2005 à 17:05:11    

peut t'on connaitre la taille d'une collection d'objet sachant que l'on n'a que l'iterateur:
 
j'ai la methode getDescendants() (define dans JDOM, classe Element) qui me renvoie un iterateur. Je souhaite juste connaitre le nombre de collection.

Reply

Marsh Posté le 02-05-2005 à 17:05:11   

Reply

Marsh Posté le 02-05-2005 à 17:07:38    

getChildren renvoie une list, donc getChildren().size () [:spamafote]


Message édité par elianor le 02-05-2005 à 17:07:50

---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 02-05-2005 à 17:11:16    

getChildren() ne renvoie que les descendants de premier rang (la première generation si tu veux). moi ce qui m'interresse c'est tout les descendants. J'ai pensé a faire simplement une boucle while et utiliser un compteur mais c'est un peut brouillon.

Reply

Marsh Posté le 02-05-2005 à 17:13:36    

n'est t'il pas possible de passer de la classe iterator à la classe collection.

Reply

Marsh Posté le 02-05-2005 à 17:17:16    

Tu fais un parcours d'arbres, et tu comptes [:spamafote]


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 02-05-2005 à 17:25:50    

c'est ce que je fais avec l'iterteur mais c'est brouillon. parceque par la suite j'utilise la valeur pour un JPrgressBar et je relance une autre boucle

Reply

Marsh Posté le 02-05-2005 à 17:28:47    

de plus les fichier XML que je parcours sont extrement grand (en moyenne 80 Mo)

Reply

Marsh Posté le 03-05-2005 à 08:59:32    

du XML extrêmement grand ce n'est pas 80Mo ;)
 
et avec une requête XPath ? tu ramènes une NodeList et tu prends sa taille.
 
edit: et tu fais du DOM avec un XML pareil ? ou tu préparses en SAX ?


Message édité par TBone le 03-05-2005 à 09:00:48

---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 03-05-2005 à 09:18:23    

j'ai une question : qui a eu l'idée de cracher 80Mo de XML ? un stagiaire ? Il ne s'est pas posé la question du coût en temps machine et mémoire d'un truc pareil ?
 
D'autre part, sachant que le monstre fait 80 Mo, qui a eu l'idée d'utiliser DOM pour tronçonner la chose ? un vendeur de mémoire ? de processeur ? Dell ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 09:27:13    

c'est un fichier XML utilisé en natif pour faire du stockage de données. J'utilise JDom pour effectuer mes requêtes, j'utilise le parser SAX de JDom pour lire le fichier.  
 
De plus je dis bien que mon fichier fait en moyenne 80 Mo, elle peut atteindre 140 Mo. Ce sont des fichiers professionnels! (En resumé c'est la configuration global des equipements Nortel 3G du réseau d'accès d'Orange)

Reply

Marsh Posté le 03-05-2005 à 09:27:13   

Reply

Marsh Posté le 03-05-2005 à 09:31:20    

80Mo ce n'est pas nécessairement craché par des stagiaires... une administration française m'a fait jouer avec des XML à contenu législatif oscillant entre 500 et 600MB le fichier.
 
(et en plus, les encoding étaient foireux)
 
faire du DOM avec c'est suicidaire, il faut tout tronçonner en SAX (une fois les caractères mal encodés corrigés) en segments de taille raisonnable et ensuite passer en DOM si besoin est.


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 03-05-2005 à 09:33:25    

nraynaud a écrit :

j'ai une question : qui a eu l'idée de cracher 80Mo de XML ? un stagiaire ? Il ne s'est pas posé la question du coût en temps machine et mémoire d'un truc pareil ?
 
D'autre part, sachant que le monstre fait 80 Mo, qui a eu l'idée d'utiliser DOM pour tronçonner la chose ? un vendeur de mémoire ? de processeur ? Dell ?


 
J'estime que ma question est suffisamment precise pour que tu me dise si oui ou non tu as un semblant de solution. Tes commentaires deplaces tu peux serieusement te les garder. Le comble c'est que les personnes comme toi ne savent pas tous bêtement poser les questions pour connaître le contexte mais cracher tes commentaires venimeuses qui apporte plus l'envie d'etre injurieux.
A l'avenir mache bien tes mots avant de me les cracher

Reply

Marsh Posté le 03-05-2005 à 09:35:18    

tatou42 a écrit :

De plus je dis bien que mon fichier fait en moyenne 80 Mo, elle peut atteindre 140 Mo. Ce sont des fichiers professionnels! (En resumé c'est la configuration global des equipements Nortel 3G du réseau d'accès d'Orange)


ce n'est pas bien malin de la part de Nortel de stocker autant dans du XML... derrière il faut se palucher du code pour gérer ça et c'est bien plus lent que qques XML spécialisés et plus petits.
 
attention de ne pas tomber dans le travers de tout stocker en XML non plus, j'ai un serveur qui peine à faire du web dynamique avec Novell exteNd où tout est XML couplé à des XSL. Bondiou que ça rame avec un user.


Message édité par TBone le 03-05-2005 à 09:36:25

---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 03-05-2005 à 09:39:52    

dans le context, XML n'est utilisé que pour les echanges. Sinon je ne sais absolument pas comment est fait la base de donnée. D'ailleur ce n'est pas mon souci. par ailleur on dispose deja d'outil nortel parsant c'est fichier. Elle met à peux près 1 minute 30 pour l'ouvrir. Avec mon outil j'arrive à faire l'equivalent.

Reply

Marsh Posté le 03-05-2005 à 09:44:07    

tatou42 a écrit :

Le comble c'est que les personnes comme toi ne savent pas tous bêtement poser les questions pour connaître le contexte mais cracher tes commentaires venimeuses qui apporte plus l'envie d'etre injurieux.
A l'avenir mache bien tes mots avant de me les cracher


mon post contient exclusivement des questions.
 
Il traduit une certaine exaspération face à ce genre de comportement qui consiste à faire n'importe quoi sans un minimum de recul. En particulier quand il faut marcher sur des oeufs à cause des contraintes techniques. 80Mo de XML, ça n'a rien d'annodin et il vaut mieux éviter de s'en vanter si on peut pas l'éviter.
 
Maintenant, des réponses, tu en as : tu tappes dedans en SAX, tu fais surtout gaffe à jetter à la poubelle (à ne pas les garder en mémoire) toutes les informations inutiles au fur-et-à-mesure du passage sur le fichier. Bref, la réponse d'Elianor. Et tu évites absolument DOM car tu vas charger en mémoire tout le fichier sinon.
 
Mais commence par voir si tu ne peux pas obtenir tes données sous un format plus intelligent.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 09:44:26    

je vous rappel ma question, j'ai une methode me renvoyant un iterateur, je voudrais connaitre la taille de la List d'objet sur lequelle il pointe sans avoir a faire utiliser une boucle ou un compteur.

Reply

Marsh Posté le 03-05-2005 à 09:45:45    

on peut pas, un Iterator c'est du traitement en flux, pas en collection.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 09:46:11    

mais c'est de toutes façons complètement non-pertinent dans ton cas.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 10:04:50    

nraynaud a écrit :

mon post contient exclusivement des questions.
 
Il traduit une certaine exaspération face à ce genre de comportement qui consiste à faire n'importe quoi sans un minimum de recul. En particulier quand il faut marcher sur des oeufs à cause des contraintes techniques. 80Mo de XML, ça n'a rien d'annodin et il vaut mieux éviter de s'en vanter si on peut pas l'éviter.
 
Maintenant, des réponses, tu en as : tu tappes dedans en SAX, tu fais surtout gaffe à jetter à la poubelle (à ne pas les garder en mémoire) toutes les informations inutiles au fur-et-à-mesure du passage sur le fichier. Bref, la réponse d'Elianor. Et tu évites absolument DOM car tu vas charger en mémoire tout le fichier sinon.
 
Mais commence par voir si tu ne peux pas obtenir tes données sous un format plus intelligent.


 
Je comprends absoluement pas en quoi poser une question technique c'est se vanter des difficultés que l'on rencontre.  
Tu ne reponds toujours pas à ma question de depart qui est la suivante:
 

Citation :

comment puis je obtenir la taille d'une Liste pointer par un iterateur sachant que l'on ne possède que l'iterateur?


 
Maintenant si tu n'es pas capable de comprendre la question et forcement d'y repondre, ce n'est pas la peine de repondre avec des commentaires qui n'ont aucun interet ni pour moi ni pour les autres d'ailleurs.
De plus les phrases du genre:

Citation :

Il traduit une certaine exaspération face à ce genre de comportement qui consiste à faire n'importe quoi sans un minimum de recul


et quelques lignes plus loin, tu te permets de parler de vantardise. Tu devrais prendre le temps de relire tes phrases pour savoir qui est le plus vantard de nous 2.  
Sur ce j'espere que dorenavant tes reponses a mes questions seront constructives sinon ce n'est pas la peine de me faire part de tes etats d'ame qui me laisse indifferent.

Reply

Marsh Posté le 03-05-2005 à 10:12:27    

tatou42 a écrit :

Sur ce j'espere que dorenavant tes reponses a mes questions seront constructives


écoute petit boulet, si tu sortais tes doigts du cul, lisait un peu et utilisait ton cerveau, tu ne serais jamais venu poser ta question ici. J'ai pas eu besoin d'agresser qui que ce soit pour comprendre la différenc d'approche entre un iterator et une collection.
 
*personne* ne te doit la moindre réponse ici, tu en as obtenu une pertinente en 2 posts, des explications par la suite et des réflexions un peu plus poussées sur l'utilisation du XML.  
 
Maintenant, il est manifeste que tu es incapable de lever la tête du guidon et de réfléchir, je te laisse donc, et je continue mes remarques pour d'autres personnes que je suis convaincu que ça intéresse (si elles n'intéresse personne, bah tant pis, ça me fait plaisir de les poster).


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 10:35:21    

peace les gens ...
 
 
 
et nraynaud, tu n'y as peut être pas encore été confronté, mais le XML est utilisé aussi pour faire des échanges de données, parfois volumineuses ... C'est un format qui en vaut un autre. Ce serait pas forcément beaucoup plus "utilisable" dans un autre format (binaire ou autre) étant donné que c'est de la donnée brute à intégrer.
 
Me semble qu'ici on se tape 2Go de xml tous les soirs dans le cadre d'un gros projet (niveau européen), ben ca se fait ...
 
Bien sûr, c'est une contrainte à prendre en compte dès le départ, mais c'est praticable. C'est aps un obstacle en soit, et d'autres solutions ne seraient pas forcément meilleures ...


Message édité par benou le 03-05-2005 à 10:35:55

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 10:41:35    

c'est con, il faut des données navigables dans la mesure du possible. Il faut des représentations plus légères. et Surtout qui ne nécessient pas un parser aussi complexe qu'un parser XML.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 10:44:35    

Surtout que c'est pas à Nortel ou à Orange que je vais apprendre l'existence d'ASN.1 c'est eux qui l'ont créé.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 10:48:27    

ca a quoi de compliqué du sax ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 10:48:40    

nraynaud a écrit :

écoute petit boulet, si tu sortais tes doigts du cul, lisait un peu et utilisait ton cerveau, tu ne serais jamais venu poser ta question ici. J'ai pas eu besoin d'agresser qui que ce soit pour comprendre la différenc d'approche entre un iterator et une collection.
 
*personne* ne te doit la moindre réponse ici, tu en as obtenu une pertinente en 2 posts, des explications par la suite et des réflexions un peu plus poussées sur l'utilisation du XML.  
 
Maintenant, il est manifeste que tu es incapable de lever la tête du guidon et de réfléchir, je te laisse donc, et je continue mes remarques pour d'autres personnes que je suis convaincu que ça intéresse (si elles n'intéresse personne, bah tant pis, ça me fait plaisir de les poster).


 
Je m'aperçois que tes propos sont toujours aussi peu constructif. En revanche, j'ai réellement besoin de savoir si tu as eu recourt à ton cerveau pour me produire de tels commentaires. Si c'est le cas j'arrive à comprendre pourquoi tu n'arrives à repondre à ma question. Tu sais je ne vais pas t'en vouloir, si tu n'es pas assez competent pour me donner une reponse à mon problème. La question ne t'etait pas spécialement destiné mais plutot à des personnes qui maitrisent le sujet.  
Maintenant, ce qu'il faut que tu saches, c'est que si je me suis inscrit sur ce forum, c'est pour trouver une solution à mon problème et non pas pour faire du social avec toi et supporter ta vulgarité d'un gamin de 10 ans.  
Je pense sincèrement que pour être aussi acide et virulant, tu dois souffrir d'un complexe d'inferiorité et ne peux que t'inviter à consulter un spécialiste avant que ca te rende encore plus aigris.
 
PS: tu vois je suis venu pour trouver une solution à un problème et au final, c'est toi qui en a trouvé une

Reply

Marsh Posté le 03-05-2005 à 10:49:06    

benou a écrit :

ca a quoi de compliqué du sax ?


 
C'est un sax de noeud [:spamafote]@


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-05-2005 à 10:51:39    

tatou42> rajoutes en pas, quoi :o
 
je vais finir par closer si vous êtes pas capables de parler sans vous engueuler ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 10:51:50    

tatou42 a écrit :


Je pense sincèrement que pour être aussi acide et virulant, tu dois souffrir d'un complexe d'inferiorité et ne peux que t'inviter à consulter un spécialiste avant que ca te rende encore plus aigris.


 
Il consulte, mais il a déjà fait des progrès : il bave moins.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-05-2005 à 10:52:00    

edit de benou : nraynaud, tu pètes les couilles !
si tu veux pas répondre, tu réponds pas et tu vas poster ton pied dans l'autre topic :o


Message édité par nraynaud le 03-05-2005 à 10:58:30

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 11:01:00    

benou a écrit :

tatou42> rajoutes en pas, quoi :o
 
je vais finir par closer si vous êtes pas capables de parler sans vous engueuler ...


 
tu as peut etre une idée benou! tu as l'air d'avoir compris mon problème. Tu sais c'est pas telement l'utilisation de SAX qui importe. Je voudrais surtour savoir comment ferais tu pour connaitre le nombre d'objet contenu dans un collection sachant que l'on n'a que l'iterateur

Reply

Marsh Posté le 03-05-2005 à 11:06:22    

nraynaud a écrit :

on peut pas, un Iterator c'est du traitement en flux, pas en collection.


 
 
bon je quote nraynaud qui t'as donné la solution
on ne peut pas si on n'a que l'itérateur, donc si tu veux connaitre le nombre d'éléments, ben tu fais deux passages, le premier tu comptes, le deuxième tu fais ce que tu veux. :sweat:

Reply

Marsh Posté le 03-05-2005 à 11:08:22    

souk a écrit :

bon je quote nraynaud qui t'as donné la solution
on ne peut pas si on n'a que l'itérateur, donc si tu veux connaitre le nombre d'éléments, ben tu fais deux passages, le premier tu comptes, le deuxième tu fais ce que tu veux. :sweat:


 
C'est ce que j'ai fait, le problème c'est que ca prend un peu plus de temps.

Reply

Marsh Posté le 03-05-2005 à 11:20:22    

:sweat:


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 11:26:57    

tatou42 a écrit :

C'est ce que j'ai fait, le problème c'est que ca prend un peu plus de temps.


t'as pas le choix ...
 
je rajouterais aussi qu'à la première passe, tu dois en plus enregistrer les éléments de l'itérateur car tu ne peux pas faire un "reset" sur un iterateur => en plus ca te bouffe de la mémoire
 
2e solution : reconstruire l'itérateur pour la 2e passe


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 11:27:24    


tu te moinmoinises, toi, tu sais ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 11:35:49    

benou a écrit :

tu te moinmoinises, toi, tu sais ?


nan mais bon lire ça de la part d'un mec qui me prend pour un crétin, forcément ...


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 03-05-2005 à 13:52:23    

nraynaud a écrit :

nan mais bon lire ça de la part d'un mec qui me prend pour un crétin, forcément ...


Tu m'enlèves les mots de la bouche.

Reply

Marsh Posté le 03-05-2005 à 14:29:18    

benou a écrit :

tu te moinmoinises, toi, tu sais ?


 
[:mlc]
ça t'emmerde si je t'insulte, là ? [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 03-05-2005 à 14:35:09    

the real moins moins a écrit :

[:mlc]
ça t'emmerde si je t'insulte, là ? [:mlc]


tu te prendras un TT [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 03-05-2005 à 17:42:14    

[:kiki]
(pauv' tache :o)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed