Tri de vector => plantage

Tri de vector => plantage - Java - Programmation

Marsh Posté le 07-09-2003 à 22:57:38    

J'ai un p'tit pb : j'essaie de trier un vector de string mais ça plante et j'vois pas pkoi  :(  
 

Code :
  1. import java.util.Collections;
  2. import java.util.Comparator;
  3. import java.util.ArrayList;
  4. import java.io.BufferedReader;
  5. import java.io.InputStreamReader;
  6. import java.io.IOException;
  7. class obj {
  8.     String s;
  9. }
  10. class Compar implements Comparator {
  11.     public int compare(Object x, Object y) {
  12.         String s1 = (String)x; // Ça plante ici
  13.         //String s2 = (String)y;
  14.         return 1;
  15. //        return s1.compareTo(s2);
  16.     }
  17. }
  18. public class sort {
  19.     public static void main(String[] args) {
  20.         ArrayList v = new ArrayList();
  21.         BufferedReader d = new BufferedReader(new InputStreamReader(System.in));
  22.         boolean terminated = false;
  23.         // Saisie des textes
  24.         do {
  25.             System.out.print("Entrez un texte : " );
  26.             try {
  27.                 obj b = new obj();
  28.                 b.s = d.readLine();
  29.                 v.add(b);
  30.                 if (b.s.length() == 0) terminated = true;
  31.             } catch (IOException e) {
  32.                 e.printStackTrace();
  33.                 terminated = true;
  34.             }
  35.         } while (!terminated);
  36.         // Tri des éléments
  37.         Collections.sort(v, new Compar());
  38.         // Affichage des éléments
  39.         for (int i = 0; i < v.size(); i++) {
  40.             obj b = (obj)v.get(i);
  41.             System.out.println(b.s);
  42.         }
  43.     }
  44. }

Soyez indulgent pour le code pas beau avec les noms de variables à la con, j'étais pas cencé le poster :D
J'ai trouvé des classes toutes faites sur le net mais ce que je veux c'est comprendre pkoi ça merde :'(

Reply

Marsh Posté le 07-09-2003 à 22:57:38   

Reply

Marsh Posté le 07-09-2003 à 23:05:09    

ben tes paramètres de ton comparateur ne sont pas de références à des string, mais à des objects. cast d'abord en obj, puis accède au champ
 
 
NdM : encore un truc qui montre la fiabilité de Java, on croirait un cast C  :D

Reply

Marsh Posté le 07-09-2003 à 23:07:12    

Raaaa p'tain, j'avais pas fait gaffe que c'était un obj et non un string, bon ça devrait marcher maintenant, merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed