ordinamento alfabetico vector<oggetto>

Stato
Discussione chiusa ad ulteriori risposte.

jackoff

Utente Silver
11 Giugno 2007
23
9
0
65
ciao

Codice:
public class Dipendente implements Comparable {
	
	private String nome;
	private String cognome;
	private String data;
	private int ore;
	
	public Dipendente(String nome,String cognome,String data,int ore)
	{
		this.nome=nome;
		this.cognome=cognome;
		this.data=data;
		this.ore=ore;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCognome() {
		return cognome;
	}

	public void setCognome(String cognome) {
		this.cognome = cognome;
	}

	public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;
	}

	public int getOre() {
		return ore;
	}

	public void setOre(int ore) {
		this.ore = ore;
	}

	@Override
	public int compareTo(Object o) {
		Dipendente dip = (Dipendente) o;
		int confrontoDip= dip.compareTo(dip.nome);
		if(confrontoDip!= 0)
			return confrontoDip;
		
		return cognome.compareTo(dip.cognome);
	}
main:
Codice:
if(args.length == 0)
		{
			System.out.println("inserisci il percorso del file...");
			System.exit(0);
		}
		
		Vector<Dipendente> v = new Vector<Dipendente>();
		Lettore l = new Lettore(args[0]);
		v= l.LeggiFile();
		
		
		int sommaOre=0;
		for(int i=0; i < v.size(); i++)
		{
			
			sommaOre+= (v.elementAt(i)).getOre();
		}
		System.out.println("Ore Totali: " + sommaOre);
		
		Collections.sort(v);
		for(int i=0; i < v.size(); i++)
		{
			System.out.println(v.elementAt(i).getNome());
		}
	
		
	

	}

quello che devo fare è ordinare gli oggetti dipendente che ci sono all'interno del vector in modo alfabetico.
eseguendolo cosi mi va in eccezione per il cast.

grazie lo stesso raga sono riuscito a risolverlo cosi:
Codice:
public int compareTo(Object o) {
		Dipendente dip = (Dipendente) o;
		if(cognome.equals(dip.cognome))
			return nome.compareTo(dip.nome);
		return cognome.compareTo(dip.cognome);
	}
 
anche se hai risolto, (dato che ti sei accorto della ca**ata che avevi scritto nel compareTo) ti vorrei dire una cosa: dato che da Java 5 esistono i generics e' bene usarli, e non solo dove ci pare...

Codice:
public class Dipendente implements Comparable<Dipendente> {
....
public int compareTo(Dipendente dip) {
        if(cognome.equals(dip.cognome))
            return nome.compareTo(dip.nome);
        return cognome.compareTo(dip.cognome);
    }

[/code]
 
Stato
Discussione chiusa ad ulteriori risposte.