[Java] Find The Bug !

Attention, ceci s’adresse aux personnes débutantes en Java. Il s’agit de faire trouver un bug parfois difficile a détecter quand on n’est pas encore totalement imprégné du langage !!!

Je connais la réponse, et nombre de programmeurs java ayant quelques programmes a leur actif devraient le savoir !

[code]public class Personne {
    private String nom;
    private int dossard;
 
    public Personne(String nom,int dossard){
            this.nom = nom;
            this.dossard = dossard;
    }
   
    public String getNom(){
            return this.nom;
    }

    public int getDossard(){
            return this.dossard;
    }

}

public class Comparateur {
    static public int main(String[] argv){
            ArrayList liste1;
            ArrayList liste2;
            Iterator i1;
            Iterator i2;
            Personne tmp1;
            Personne tmp2;

            liste1.add(new Personne(“toto”,2));
            liste1.add(new Personne(“toto”,5));
            liste1.add(new Personne(“tata”,3));

            liste2.add(new Personne(“tutu”,1));
            liste2.add(new Personne(“titi”,2));
            liste2.add(new Personne(“tata”,3));

            i1=liste1.iterator();
            i2=liste2.iterator();

            while(i1.hasNext() && i2.hasNext()){
                 tmp1 = (Personne) i1.next();
                 tmp2 = (Personne) i2.next();
                 if(tmp1.getDossard() == tmp2.getDossard() &&
                    tmp1.getNom()     == tmp2.getNom()){
                       System.out.println(“Les deux personnes sont identiques”);
                 }else{
                  System.out.println(“Les deux personnes sont différentes”);
            }  
     }
       
     return 0;

     }
}[/code]

Pourquoi ce code dit toujours que “Les deux personnes sont différentes” , alors que, manifestement, dans les deux listes, la troisième devrait renvoyer “Les deux personnes sont identiques” ?

Eheh, bug bien vicelard … je me suis cassé les dents sur un prob du genre quand j’ai commencé avec Java :stuck_out_tongue:

Mais bien simple à résoudre et surtout bien logique

Si aucun nouveau en java n’y arrive, je donne la réponse a 22h !

[quote name=‘Amalsek’ date=’ 17 Nov 2004, 18:01’]Si aucun nouveau en java n’y arrive, je donne la réponse a 22h !
[right][post=“304048”]<{POST_SNAPBACK}>[/post][/right][/quote]

Je t’ai envoyé un pm juste aprés la parussion du Sujet j’ai bon ?

Koubiak que ca fait 2 ans qu’il fait plus de JAVA

PM la solution histoire de pas tout dévoiler si j’ai trouvé. Je crois donc, mais peut-être mon inexpérience en la matière me joue-t-elle des tours.

[quote name=‘LeBaronNoir’ date=’ 17 Nov 2004, 18:46’]PM la solution histoire de pas tout dévoiler si j’ai trouvé. Je crois donc, mais peut-être mon inexpérience en la matière me joue-t-elle des tours.
[right][post=“304070”]<{POST_SNAPBACK}>[/post][/right][/quote]

De toute facon le JAVA SAIMAL

Koubiak qui avait trouvé

Meuh non moi j’aime bien. Pour l’instant…

J’ai posté ce ch’ti bug, car à mon IUT, après deux ans de java, y’en a qui se font toujours avoir (bouh à eux).

Sinon, je dis pas que le Java c’est bien (changements de syntaxe à la con entre les versions, machine virtuelle qui raaaaame etc …)

Pour des très petites valeurs du mot « logique ». En effet, ce bug ne pourrait pas se produire avec d’autres langages bien plus « logiques » que java.

Marrant cet étalage de haine pour le Java. Marrant comme les critiques se résument souvent à “le Java SAPU” sans le moindre argument un tant soit peu développé. Marrant comme ce thread au départ innocent est en train de partir en troll…

De la à croire que ce sont ceux qui en savent le moins qui donnent le plus leur avis :P"

Par pitié, attendez d’avoir un minimum utilisé une technologie ou un langage avant de le vouer aux gémonies. Comme on dit “don’t feed the troll !” .

+150 000 ligne de codes sur une Application. C’est bon, j’ai le droit de critiquer, mairtre? :stuck_out_tongue:

Hé hé, trouve la ligne où je prétends avoir la compétence requise pour pouvoir faire de meilleures critiques que vous avant de vouloir m’appeler Maître :stuck_out_tongue:

Tu remarqueras que dans le grand acte de courage et de témérité que représente le post précédent je n’ai même pas donné mon avis personnel sur le Java. La seule chose qui m’agace un peu c’est l’accumulation de critiques limite monosyllabiques sur le sujet là où je préfèrerais lire des critiques constructives et informatives. J’ai déjà appris plein de trucs sur ce forum de par sa fréquentation par des gens ayant souvent des choses à dire et prenant la peine de les formuler en plus d’une phrase.

C’est pourquoi j’attend un peu plus que « le Java c’est pas logique ». Oui je sais, je suis exigeant. D’ailleurs le mieux serait quand même de ne pas partir dans un troll si tentant sur ce langage, on fait dévier le thread et Amalsek va finir par nous en vouloir :stuck_out_tongue:

[quote name=‹ Twin › date=’ 17 Nov 2004, 21:27’]D’ailleurs le mieux serait quand même de ne pas partir dans un troll si tentant sur ce langage, on fait dévier le thread et Amalsek va finir par nous en vouloir  :stuck_out_tongue:
[right][post=« 304111 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Nan nan, je vous en veux pas, j’ai jamais dit que j’aimais le java, c’est juste que c’est ça qu’on utilise à l’IUT (pas de C++, je l’ai appris tout seul). J’ai d’ailleurs signalé plus haut certain des points que je lui reproche (j’ai quand meme oublié la programmation Swing, qui est plus lent qu’un escargot asthmatique)

[quote name=‹ Twin › date=’ 17 Nov 2004, 20:27’]Hé hé, trouve la ligne où je prétends avoir la compétence requise pour pouvoir faire de meilleures critiques que vous avant de vouloir m’appeler Maître  :stuck_out_tongue:

Tu remarqueras que dans le grand acte de courage et de témérité que représente le post précédent je n’ai même pas donné mon avis personnel sur le Java. La seule chose qui m’agace un peu c’est l’accumulation de critiques limite monosyllabiques sur le sujet là où je préfèrerais lire des critiques constructives et informatives. J’ai déjà appris plein de trucs sur ce forum de par sa fréquentation par des gens ayant souvent des choses à dire et prenant la peine de les formuler en plus d’une phrase.

C’est pourquoi j’attend un peu plus que « le Java c’est pas logique ». Oui je sais, je suis exigeant. D’ailleurs le mieux serait quand même de ne pas partir dans un troll si tentant sur ce langage, on fait dévier le thread et Amalsek va finir par nous en vouloir  :stuck_out_tongue:
[right][post=« 304111 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Si on a plus le droit de troller en paix ici :stuck_out_tongue:

Le Java a ses interets mais montre quand meme certaines limites… J’ai pas envie de detailler

Koubiak

OK no problemo. Je révèle la liste non exhaustive des langages qui supportent l’aspect logique qui manque à Java dans une heure (au moins, faut pas déconner y a WoW aussi), quand la réponse au bug sera publiée.

Tu vois, faut pas être trop pressé.

[quote name=‹ koubiak › date=’ 17 Nov 2004, 21:49’]Si on a plus le droit de troller en paix ici :stuck_out_tongue:

Le Java a ses interets mais montre quand meme certaines limites… J’ai pas envie de detailler

Koubiak
[right][post=« 304126 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Pour les serveurs d’applications, c’est le grand gagnant, preuve qu’il est bon dans quelque chose. Et puis, si c’etait vraiement nul, on en aurai pas entendu parler longtemps

Perso, pour le c++, j’ai une grosse critique : C’est quoi cette possibilité de mettre du code C en plein milieu ? Le c++ a tendance à me faire penser a du bricolage … mais il est plus rapide que le Java (pas difficile)

mise à par le fait que tmp1 et tmp2 ne sont pas initialisé je donne ma langue au chat. :stuck_out_tongue:

[quote name=‹ faden › date=’ 17 Nov 2004, 21:20’]mise à par le fait que tmp1 et tmp2 ne sont pas initialisé je donne ma langue au chat.  :stuck_out_tongue:
[right][post=« 304152 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Ca m’a choqué aussi, faudrais le corriger dans l’exemple, mais c’est pas ça. En fait c’est assez logique cette histoire, je vois pas le problème, je trouve ca plutôt normal d’ailleurs…

Asser simple comme problème, mais je ne suis plus débutant en Java depuis une paire de temps. D’ailleurs, arréter de troller sur le Java, moi j’adore, c’est vrai que c’est assez lent mais il y a plein de bonnes choses dedans. Ce qu’il manque, Swing en VRAI natif car leurs skins natifs sont tous pourris, mais pour ça il y a SWT mais j’ai jamais réussi à m’y mettre et c’est pas faute d’essayer.

[batiste@myhost Desktop]$ java -version java version "1.5.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64) Java HotSpot(TM) Client VM (build 1.5.0-b64, mixed mode) [batiste@myhost Desktop]$ java Comparateur Les deux personnes sont differentes Les deux personnes sont differentes Les deux personnes sont identiques

:stuck_out_tongue: