[java] explications treeset
timon44
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
Marco la baraque Messages postés 996 Date d'inscription Statut Contributeur Dernière intervention -
Marco la baraque Messages postés 996 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je recherche dans la méthode modifierNumero à modifier dans lesNumeros, un numéro.J'utilisai avant ArrayList, mais je l'ai remplacer par un TreeSet, pour ne pas avoir de doublons, mais indexOf ne marche pas avec TreeSet...
Comment est ce que je pourrais faire ?
Je je ne comprends pas non plus la méthode comparator() implémenté avec SortedSet ....
Merci beaucoup!
je recherche dans la méthode modifierNumero à modifier dans lesNumeros, un numéro.J'utilisai avant ArrayList, mais je l'ai remplacer par un TreeSet, pour ne pas avoir de doublons, mais indexOf ne marche pas avec TreeSet...
Comment est ce que je pourrais faire ?
import java.util.*; public class Personne { String nom; String prenom; SortedSet<NumTel> lesNumeros; //constructor Personne(String name, String pren){ nom=name; prenom=pren; lesNumeros = new TreeSet<NumTel>(); } public void AjouterNumero(NumTel num){ lesNumeros.add(num); } public String getNom(){ return nom; } public String getPrenom(){ return prenom; } public void SupprimerNumero(String num){ if (lesNumeros.contains(num)) { int pos=(lesNumeros.indexOf(num)); lesNumeros.remove(pos);} else {System.out.print("numero non existant");} } public void ModifierNumero(NumTel numFaux,NumTel numBon){ if (lesNumeros.contains(numFaux)) { int pos=(lesNumeros.indexOf(numFaux)); lesNumeros.set(pos, numBon);} else {System.out.print("numero non existant");} } int cpt=0; public void AfficherNumeros(){ Iterator<NumTel> iter = lesNumeros.iterator(); while (iter.hasNext()){ System.out.println(iter.next()); cpt++; } } }
Je je ne comprends pas non plus la méthode comparator() implémenté avec SortedSet ....
Merci beaucoup!
A voir également:
- [java] explications treeset
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Bonsoir timon44,
Bon, ce que je te conseille, c'est d'utiliser une hashmap classique pour gérer tes numéros de téléphone.
Concrètement, c'est carrément plus efficace qu'un set parce que tu peux récupérer tes numéros en temps constant (une hashmap c'est fait pour ça), alors qu'avec un set, il faut parcourir tout ton ensemble (et avec un sortedset, ça se fait plus rapidement, genre en O(n log n) pour un treeset, mais c'est toujours plus long).
En ce qui concerne la duplicité des données, ton élément ne pourra être inséré qu'une seule et unique fois dans ta map (comme dans un set).
En ce qui concerne comparator(), c'est une méthode qui te retourne le comparateur utilisé par ta sortedSet. En gros un sortedSet, c'est un ensemble dans lequel les éléments sont triés. Donc pour trier tes éléments, il faut les comparer entre eux. Si ordonner1 et 2 est facile (encore qu'on puisse définir des comparateurs mathématiques complexes), ordonner deux instances d'un classe Voiture est plus compliqué (d'où la nécessité d'implémenter des algorithmes de comparaison, ici des classes qui implémentent l'interface Comparator).
Cordialement,
Bon, ce que je te conseille, c'est d'utiliser une hashmap classique pour gérer tes numéros de téléphone.
Concrètement, c'est carrément plus efficace qu'un set parce que tu peux récupérer tes numéros en temps constant (une hashmap c'est fait pour ça), alors qu'avec un set, il faut parcourir tout ton ensemble (et avec un sortedset, ça se fait plus rapidement, genre en O(n log n) pour un treeset, mais c'est toujours plus long).
En ce qui concerne la duplicité des données, ton élément ne pourra être inséré qu'une seule et unique fois dans ta map (comme dans un set).
En ce qui concerne comparator(), c'est une méthode qui te retourne le comparateur utilisé par ta sortedSet. En gros un sortedSet, c'est un ensemble dans lequel les éléments sont triés. Donc pour trier tes éléments, il faut les comparer entre eux. Si ordonner1 et 2 est facile (encore qu'on puisse définir des comparateurs mathématiques complexes), ordonner deux instances d'un classe Voiture est plus compliqué (d'où la nécessité d'implémenter des algorithmes de comparaison, ici des classes qui implémentent l'interface Comparator).
Cordialement,