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();
	}
}