Ciao.
Ho fatto un piccolo programmino che legge un file f1 contenente numeri interi e li mette in una linkedlist.
questo programmino dovrebbe stampare su schermo tutti i numeri senza ripetizione ed in modo ordinato crescente.
Quello che viene stampato però è questo :
[1,2,3,3,4,5,6,5,5,7,8,8,8,8,9,0,8,7,7,8,8,]
Come potete vedere ci sono le ripetizioni , ed i numeri non sono ordinati.
Potete dare un occhiata al codice e dirmi dove ho sbagliato?
Tanks![]()
codice:package Poo; import java.util.*; import java.io.*; public class Applicazione { public static void main(String[] args){ Lista lista = new Lista(); try{ BufferedReader in = new BufferedReader(new FileReader("D:/Workspace/Files/f1.txt")); String linea = in.readLine(); StringTokenizer st = new StringTokenizer(linea); while(st.hasMoreTokens()){ int n = Integer.parseInt(st.nextToken()); lista.aggiungi(n); } } catch(IOException e){ e.printStackTrace(); } System.out.println(lista.toString()); } } class Lista implements Comparable<Integer>{ private LinkedList<Integer> lista; public Lista(){ lista = new LinkedList<Integer>(); } public void aggiungi(int n){ lista.add(n); } public Iterator<Integer> iterator(){ return lista.iterator(); } public int compareTo(int x){ if(lista.element()<x) return -1; if(lista.element()>x) return 1; return 0; } public boolean equals(Object o){ if(o==this) return true; if(o==null) return false; if(!(o instanceof Lista)) return false; int n = (Integer)o; return lista.element()==(n); } public String toString(){ StringBuilder sb = new StringBuilder(); sb.append("["); Iterator<Integer> it = this.iterator(); while(it.hasNext()){ int n = it.next(); if(this.equals(n)) continue; sb.append(n); sb.append(","); } sb.append("]"); return sb.toString(); } }

Rispondi quotando
