Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1206 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Qui pense que les piles (java.util.Stack) sont à l'envers?

 


Stack est à l'envers ou pas?????




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Qui pense que les piles (java.util.Stack) sont à l'envers?

n°308880
seabee
Posté le 13-02-2003 à 22:15:03  profilanswer
 

Je m'explique, le dernier élément ajouté dans une pile est le dernier à la fin de la chaine renvoyé par toString().
(Alors que normalement, c'est l'inverse : le dernier ajouté est en première position. Saisissez?:sarcastic:)
Je trouve ça super énervant, et... bref... hem.
Pour les gens qui aiment les belles choses comme moi, la solution a priori, c'est: :bic:

Code :
  1. class SuperPileQuiTueEtMemeQuelleEstALEndroit extends java.util.Stack {
  2. String toString() {
  3.   String retour = "]";
  4.   Iterator ite = this.iterator();
  5.   while(ite.hasNext()) {
  6.   String elem = ite.next().toString();
  7.   if(ite.hasNext()) retour = ", "+elem+retour;
  8.   else retour = elem+retour;
  9. }
  10. return "["+retour;
  11. }
  12. }
  13. }


 
Mais je trouve que les piles à l'envers, c'est abusé. (tous les trucs dedans y vont tomber dans le fond de l'ordinateur :sweat: )


Message édité par seabee le 13-02-2003 à 22:17:34
mood
Publicité
Posté le 13-02-2003 à 22:15:03  profilanswer
 

n°308884
fykman
Errare Humanum Est
Posté le 13-02-2003 à 22:19:21  profilanswer
 

Ca depends, c'est une FIFO ou une FILO ?  
 
 :whistle:
 
Edit : meme pas c'est un LIFO :
 
Quote de l'API de Stack

Citation :


The Stack class represents a last-in-first-out (LIFO) stack of objects


 
 :lol:  :lol:


Message édité par fykman le 13-02-2003 à 22:21:57
n°308886
--greg--
Posté le 13-02-2003 à 22:19:39  profilanswer
 

Seabee a écrit :

Mais je trouve que les piles à l'envers, c'est abusé. (tous les trucs dedans y vont tomber dans le fond de l'ordinateur :sweat: )

[:rofl]


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°308889
--greg--
Posté le 13-02-2003 à 22:20:58  profilanswer
 

elle est pas à l'envers, quand tu demandes les élements, tu les a dans l'ordre attendu, tu reçois le dernier inséré.
si le toString() te perturbe, bah tu le redefini si ça te chante  :sarcastic:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°308892
seabee
Posté le 13-02-2003 à 22:22:23  profilanswer
 

C'est une LIFO, évidemment!!!
C'est la définition d'une pile.
Sinon c'est une file... (FILO) :sarcastic:
Note que c'est juste l'affichage qui est dans le mauvais sens.
C'est inadmissible (me battrais jusqu'à la mort)


Message édité par seabee le 13-02-2003 à 22:23:45
n°308895
fykman
Errare Humanum Est
Posté le 13-02-2003 à 22:24:11  profilanswer
 

Seabee a écrit :

C'est une FIFO, évidemment!!!
C'est la définition d'une pile.
Sinon c'est une file... (FILO)
Kesk'y t'ont appris à l'école??? :sarcastic:
Note que c'est juste l'affichage qui est dans le mauvais sens.
C'est inadmissible (me battrais jusqu'à la mort)
 


 
Perdu !!!
 
Voir l'edit de mon post....
Ca t'apprendra a faire le malin avec moi !  :D  :D

n°308897
seabee
Posté le 13-02-2003 à 22:25:40  profilanswer
 

Moi aussi g édité mon message :D :D :D :D :D  
J'métais gourré dans les L et les F, milles excuses.

n°308922
noldor
Rockn'roll
Posté le 13-02-2003 à 22:45:26  profilanswer
 

ben une pile c est une pile
comme une pile d assiettes : l assiette que tu chopes en premier, c est la dernière que tu avais mise


---------------
http://runnerstats.net
n°308928
seabee
Posté le 13-02-2003 à 22:52:14  profilanswer
 

Citation :

ben une pile c est une pile  
comme une pile d assiettes : l assiette que tu chopes en premier, c est la dernière que tu avais mise


 
Le problème c'est qu'il affiche les assiettes dans le mauvais ordre. (Oui, il ose mettre la porcelaine de mémé sous les assiettes de carrefour...)
Je vais écrire à monsieur JDK1.4 qu'il face attention aux assiettes de mémé.
:o

n°309204
phenixl
Posté le 14-02-2003 à 12:19:10  profilanswer
 

Certains ont vraiment du temps a perdre... :lol:
 
Sinon a part ca c'est uniquement une question d'implem : il est plus simple et plus efficient de creer une stack en faisant un bete array (qui lu sequentiellement va tout afficher "a l'envers" ) qu'en faisant une liste chainee pour mettre /enlever a la premiere position... (qui lue sequentiellement va tout afficher "a l'endroit" ) Bien entendu tu pourrais lire ton array a l'envers pour afficher a l'endroit mais bon si l'on admet que l'homme de cromagnon connaissait les banques on ne sortira jamais de la metaphysique des bancomats !
 
Euh je pars en couille non ?  :whistle:  
 

mood
Publicité
Posté le 14-02-2003 à 12:19:10  profilanswer
 

n°309205
Taz
bisounours-codeur
Posté le 14-02-2003 à 12:21:14  profilanswer
 

topic à la con, y a pas de sens
d'ailleurs ça depend de l'implémentation: tableau, on insere à la fin, liste chainée, on insere au debut
 
topic a la con


Message édité par Taz le 14-02-2003 à 12:27:12
n°309208
darklord
You're welcome
Posté le 14-02-2003 à 12:25:31  profilanswer
 

mais c quoi ce topic de merde? :fou:


---------------
Just because you feel good does not make you right
n°309214
darklord
You're welcome
Posté le 14-02-2003 à 12:28:22  profilanswer
 

[:harkott] ou [:antptt] selon qui est là ...


---------------
Just because you feel good does not make you right
n°309215
kadreg
profil: Utilisateur
Posté le 14-02-2003 à 12:28:37  profilanswer
 

DarkLord a écrit :

mais c quoi ce topic de merde? :fou:


 
Je plussoie. Je ne vois pas le rapport entre dessus de pile et gauche et droite. Prenez une pile de livre, et basculez-là. Maintenant, regardez ce qu'il est devenu de votre ordre.


Message édité par kadreg le 14-02-2003 à 12:29:17

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°309220
--greg--
Posté le 14-02-2003 à 12:32:12  profilanswer
 

bah quoi il est rigolo ce topic :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°309282
darklord
You're welcome
Posté le 14-02-2003 à 13:51:20  profilanswer
 

--greg-- a écrit :

bah quoi il est rigolo ce topic :o


 
[:dawa]


---------------
Just because you feel good does not make you right
n°309290
--greg--
Posté le 14-02-2003 à 13:57:53  profilanswer
 

seabee revient!!  :bounce:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°309293
darklord
You're welcome
Posté le 14-02-2003 à 13:59:11  profilanswer
 

--greg-- a écrit :

seabee revient!!  :bounce:  


 
cai un beau celui la [:dawa]
 
ca serait pas un multi d'ailleurs :heink:


---------------
Just because you feel good does not make you right
n°309300
--greg--
Posté le 14-02-2003 à 14:02:04  profilanswer
 

DarkLord a écrit :


 
cai un beau celui la [:dawa]
 
ca serait pas un multi d'ailleurs :heink:

bah cai pas un boolay :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°309313
darklord
You're welcome
Posté le 14-02-2003 à 14:11:11  profilanswer
 

--greg-- a écrit :

bah cai pas un boolay :o


 
g pas dit que ct un boolay :o


---------------
Just because you feel good does not make you right
n°309317
--greg--
Posté le 14-02-2003 à 14:14:32  profilanswer
 

DarkLord a écrit :


 
g pas dit que ct un boolay :o

tu voulais dire que ct un beau quoi alors :heink:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°309319
darklord
You're welcome
Posté le 14-02-2003 à 14:16:39  profilanswer
 

--greg-- a écrit :

tu voulais dire que ct un beau quoi alors :heink:


un marrant quoi [:dawa] mais pas specialement un boolay (quoi que .... :ange:)


---------------
Just because you feel good does not make you right
n°309335
antp
Super Administrateur
Champion des excuses bidons
Posté le 14-02-2003 à 14:22:00  profilanswer
 

Seabee a écrit :

Sinon c'est une file... (FILO) :sarcastic:


 
une file c'est pas plutôt FIFO ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°309373
benou
Posté le 14-02-2003 à 14:39:58  profilanswer
 

antp a écrit :


une file c'est pas plutôt FIFO ?


j'allais le dire  :o

n°309375
benou
Posté le 14-02-2003 à 14:41:01  profilanswer
 

pit de toute façon, la Stack en java elle est toute nickée ! Y a aucune raison qu'elle hérite de vector et qu'on puisse utiliser les add(Objet, int) et autres méthodes qui ont aucun sens avec une pile !  :kaola:

n°309376
lorill
Posté le 14-02-2003 à 14:42:02  profilanswer
 

ben vous etes grillés tous les 2 alors :o

n°309637
BifaceMcLe​OD
The HighGlandeur
Posté le 14-02-2003 à 16:04:26  profilanswer
 

Si tu aimais vraiment les belles choses :
1 - Tu indenterais ton code, même dans ton post.
2 - Tu utiliserais StringBuffer au lieu de String.
Comme suit:

Code :
  1. class SuperPileQuiTueEtMemeQuelleEstALEndroit extends java.util.Stack {
  2.   public String toString() {
  3.     StringBuffer buffer   = new StringBuffer(']');
  4.     Iterator     iterator = this.iterator();
  5.     while (iterator.hasNext()) {
  6.       buffer.insert(0, iterator.next());
  7.       if (iterator.hasNext()) {
  8.         buffer.insert(0, ", " );
  9.       }
  10.     }
  11.     buffer.insert(0, '[');
  12.     return buffer.toString()
  13.   }
  14. }

n°309640
darklord
You're welcome
Posté le 14-02-2003 à 16:05:20  profilanswer
 

BifaceMcLeOD a écrit :

Si tu aimais vraiment les belles choses :
1 - Tu indenterais ton code, même dans ton post.
2 - Tu utiliserais StringBuffer au lieu de String.
Comme suit:

Code :
  1. class SuperPileQuiTueEtMemeQuelleEstALEndroit extends java.util.Stack {




 
 [:rofl]


---------------
Just because you feel good does not make you right
n°309649
BifaceMcLe​OD
The HighGlandeur
Posté le 14-02-2003 à 16:11:10  profilanswer
 

Je me suis contenté de reprendre son code tout en haut du topic.  :o

n°309681
phenixl
Posté le 14-02-2003 à 16:32:59  profilanswer
 

BifaceMcLeOD a écrit :

plein de trucs biens...


 
 
Mais je prefere :
 

Code :
  1. class MyStack extends java.util.Stack {
  2.   public String toString() {
  3.     StringBuffer buffer   = new StringBuffer(']');
  4.     Iterator     iterator = this.iterator();
  5.     while (iterator.hasNext()) {
  6.       buffer.insert(0, iterator.next()).insert(0, ", " );
  7.     }
  8.     if (buffer.length() > 1) { // ou (buffer.indexOf(", " ) != -1)
  9.       buffer.delete(0, 2);
  10.     }
  11.     buffer.insert(0, '[');
  12.     return buffer.toString()
  13.   }
  14. }


 :hello:
 
Edit : j'adore le loop unrolling  et la suppression de tests inutiles ;-)


Message édité par phenixl le 14-02-2003 à 16:34:18
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Qui pense que les piles (java.util.Stack) sont à l'envers?

 

Sujets relatifs
[Java] generation de code a partir de rational rose[Java][RESOLU] Compilation en cours d'execution
[Java] parser, éditeur,.. des idées ?Tester le groupe d'util?
[HTML] interface avec des tables : qu'en pense le w3c ?java -jar ne prends pas le classpath en compte? :heink:
Java inutilisable sur Solaris ?[JAVA] Vulnérabilité potentielle ?
[JAVA]Question de compréhensionjava virtuel machine en englais pour un xp francais
Plus de sujets relatifs à : Qui pense que les piles (java.util.Stack) sont à l'envers?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR