Bonjour à tous,

Je souhaiterais qu'un Boolean contenu dans l'objet du TreeSet change d'état lorsque j'essaie d'ajouter un objet identique.

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
33
 
public class CommuneDto implements Comparable<CommuneDto> {
    private String code;
    private String libelle;
    private Boolean indicActif;
 
@Override
    public boolean equals(Object o) {
        if (o == null || getClass() != o.getClass()){
            return false;
        }
 
        CommuneDto commune = (CommuneDto) o;
        if (this.getCode().equals(commune.getCode()) && this.getLibelle().equals(commune.getLibelle())) {
            return true;
        }
 
        return false;
    }
 
    @Override
    public int hashCode() {
        return code.hashCode() + libelle.hashCode();
    }
 
    /* (non-Javadoc)
     * @see java.lang.Comparable#compareTo(java.lang.Object)
     */
    @Override
    public int compareTo(CommuneDto o) {
        return this.getCode().compareTo(o.getCode());
 
    }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Set listeCommune = new TreeSet<CommuneDto>();
listeCommune.add(competenceGeographiqueService.chargerCommune(codeCommune));
Je ne sais pas si je suis très clair, lorsque j'ajoute une commune à mon treeSet et que cette commune existe déjà dans ce treeSet, je voudrais que indicActif soit vrai.
Je ne vois pas comment faire avec un treeSet.
J'avais pensé à inclure la mise à jour du boolean dans les methode hashCode ou equals que j'ai redéfini. Est une bonne idée?
Si c'est pas possible, je passerai par une arrayList mais je devrai gérer les doublons à la main.

Si quelqu'un à une idée sur comment faire....

Merci pour vos réponses