Bonjour,
J'ai un problème dans l'utilisation de la méthode "contains" dans une collection.
D'après la documentation
Dans mon exemple, j'ai créé une classe "Objet" avec la méthode equalsboolean contains(Object o)
Returns true if this set contains the specified element. More formally, returns true if and only if this set contains an element e such that (o==null ? e==null : o.equals(e)).
Dans mon test
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 public class Objet { public int t1; public int t2; public Objet(int t1, int t2) { this.t1=t1; this.t2=t2; } public boolean equals(Objet o) { return (this.t1==o.t1)&&(this.t2==o.t2); } }
On voit que l'objet o4 est identique par rapport à l'objet o1 d'après la méthode equals que j'ai défini.
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 import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Set<Objet> listObjets= new HashSet<Objet>(); Objet o1=new Objet(1,2); Objet o2=new Objet(2,1); Objet o3=new Objet(5,4); Objet o4=new Objet(1,2); listObjets.add(o1); listObjets.add(o2); listObjets.add(o3); if (listObjets.contains(o4)) { System.out.println("Yes"); }else { System.out.println("No"); } } }
Par contre, quand je fais
Le système retourne faux!
Code : Sélectionner tout - Visualiser dans une fenêtre à part listObjets.contains(o4)
Pourriez vous m'aider?
Merci
Partager