Bonjour, je souhaiterai trier un fichier csv (ce qui fonctionne) par contre ce fichier contient que des entiers, et donc je voudrais trier selon le nombre dont ces nombre sont sortis.
Le tri fonctionne, cedendant un problème se pose, par exemple lorsque que j'ai le numéro "42" et le numero "40" qui sortent autant de fois, alors le numéro 40 est supprimé et seul le numéro 42 s'affiche...
Merci d'avance si quelqu'un a une petite idée...
Voici mon code:
et NumBean:
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
34
35
36
37 public class Main { public static void main(String[] args) { List<String> tirage = new LinkedList<String>(); try { CsvReader csvFile = new CsvReader("C:\\Users\\Niko\\Desktop\\num.csv"); csvFile.readHeaders(); while (csvFile.readRecord()) { String numeros = csvFile.get(0); StringTokenizer st = new StringTokenizer(numeros, ";"); while (st.hasMoreTokens()) { String num = st.nextToken(); tirage.add(num); } } csvFile.close(); } catch (IOException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } Set<NumBean> listNum = new TreeSet<NumBean>(); Iterator tirNum = tirage.iterator(); while (tirNum.hasNext()) { String element = (String) tirNum.next(); int count = CollectionUtils.countMatches(tirage, new EqualPredicate(element)); NumBean num = new NumBean(Integer.parseInt(element), count); if (!listNum.contains(num)) { System.out.println("Element : " + element + " present " + count + " fois"); listNum.add(num); } } } }
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
34
35 public class NumBean implements Serializable, Comparable<NumBean> { private int valeur; private int iteration; public NumBean() { } public NumBean(int valeur, int iteration) { this.valeur = valeur; this.iteration = iteration; } public int getIteration() { return iteration; } public int getValeur() { return valeur; } public void setIteration(int iteration) { this.iteration = iteration; } public void setValeur(int valeur) { this.valeur = valeur; } public int compareTo(NumBean o) { int diff = o.getIteration() - iteration; return diff; } }
Partager