Bonjour,
Je dois essaye de comprendre le fonctionnement d'un programme. Mais quand j'essaye de le compiler, pas moyen, ça bloque a la méthode "binarysearch(list,object)" qui renvoi l'indice de l'objet dans la liste.
Les objets stockées dans la liste doivent implémenter Comparable.
Ceci:
Marche sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private List<String> personnes = new ArrayList<String>(); .. positionIndex = java.util.Collections.binarySearch(personnes, new String("toto");
(j'ai simplifier le problème, c'est peut être pas la syntaxe exact).
Mais voici ce que j'aimerais faire (j'ai simplifier...)
Hors cela ne marche pas.
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 class Personne implements Comparable { private String nom; public Personne(String nom) { this.nom=nom; } public int compareTo(Object arg0) { Personne pers = (Personne) arg0; return this.nom.compareToIgnoreCase(pers.nom); } } public class test { static List<Personne> personnes = new ArrayList<Personne>(); public static void main() { int i = java.util.Collections.binarySearch(personnes, new Personne("toto")); } }
Le compilateur me râle dessus avec:
test.java:34: cannot find symbol
symbol : method binarySearch(java.util.List<Personne>,Personne)
location: class java.util.Collections
int i = java.util.Collections.binarySearch(personnes, new Personne("toto"));
Visiblement, il a pas l'air de comprendre que List<Personne> est une liste qui est capable d'avoir des objets qui implémente comparable.
Lien javadoc
Je comprend pas très bien...
J'ai fait une erreur quelque part?
Merci d'avance![]()
Partager