Bonjour,
Je voulais utiliser une collection d'objets de type Animal (classe que j'ai créée) et j'ai choisi un HashSet parce que je ne voulais pas de doublons. J'ai redéfini la méthode equals pour que deux animaux soient égaux si ils ont le même nom mais j'ai toujours des doublons.
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 public class Animal { public String nom; public int poids; public Animal(String nom, int poids) { this.nom = nom; this.poids = poids; } @Override public String toString() { return "Je suis "+ nom+ " et je pèse "+poids+"kg."; } @Override public boolean equals(Object obj) { if (obj instanceof Animal) { Animal a = (Animal) obj; if (a.nom.equalsIgnoreCase(nom)) { return true; } } return false; } }Quand j'exécute mon code, j'obtiens ça:
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 import java.util.*; public class TestAnimal { public static void main(String args[]){ Set<Animal> tab = new HashSet<Animal>(); tab.add(new Animal("tortue", 355)); tab.add(new Animal("lion", 25)); tab.add(new Animal("ornithorynque", 87)); tab.add(new Animal("tortue", 10)); System.out.println(tab); for (Animal a : tab) { System.out.println(a); } } }
[Je suis lion et je pèse 25kg., Je suis tortue et je pèse 355kg., Je suis ornithorynque et je pèse 87kg., Je suis tortue et je pèse 10kg.]
Je suis lion et je pèse 25kg.
Je suis tortue et je pèse 355kg.
Je suis ornithorynque et je pèse 87kg.
Je suis tortue et je pèse 10kg.
J'espère que vous pourrez m'aider.
Partager