Bonjour,
ici, j'ai une liste qui contient plusieurs éléments avec des doublons
Voici les codes:
listjr est ma liste de pemiere avec des doublons et je voudrais le parcourir, puis récupérer dans les nouveaux éléments de liste de listjr peut sans doublons.
List<JourneesTravaillees> listjr = new ArrayList<>();
listjr = Utils.getIClass().DetailsPaie(txtDateDebut1.getValue().toString(), txtDateFin1.getValue().toString());
Set set = new HashSet();
set.addAll(listjr);
List<JourneesTravaillees> newlist= new ArrayList(set);
tableview.setItems(FXCollections.observableArrayList(Utils.transform1(newlist)));
colmat.setCellValueFactory(new PropertyValueFactory<>("matricule"));
colnom.setCellValueFactory(new PropertyValueFactory<>("nom_journalier"));
colnbheure.setCellValueFactory(new PropertyValueFactory<>("nb_heures"));
colsalBase.setCellValueFactory(new PropertyValueFactory<>("categorie"));
colCalaireNet.setCellValueFactory(new PropertyValueFactory<>("som"));
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023126 23 sept. 2017 à 14:19
Bonjour,
Pour que le HashSet fonctionne correctement il faut redéfinir les méthodes hashCode et equals dans ta classe JourneesTravaillees afin de savoir sur quels critères deux objets peuvent être considérés comme doublons.
En pratique, cela dépend des attributs de ta classe, c'est donc très spécifique à l'implémentation que tu en as faite.
Par exemple j'ai
class Point { int x, y; }
et j'utilises Eclipse pour générer automatiquement les deux méthodes, cela donne :
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + x;
result = prime * result + y;
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Point other = (Point) obj;
if (x != other.x)
return false;
if (y != other.y)
return false;
return true;
}
Evidemment, c'est de la génération automatique, ça peut se simplifier, et ce n'est qu'un exemple parmi d'autres de ce que l'on peut faire, ce qui compte c'est l'interprétation du résultat qui en est faite par des classes comme HashSet.
aboubakr664
>
KX
Messages postés16701Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention26 mai 2023 23 sept. 2017 à 14:50
Merci bcp
Je lai fait et sa marche a merveille
Merci KK pour votre précieuse aide