Lista de Objetos Ordenada - Iniciante

4 respostas
A

Olá, tenho as seguintes codigos:

public class Pessoa {

	public voi dsetNome(String nome) {
		...
	}

	public String getNome() {
		...
	}

	public void setSalario(float sal) {
		...
	}

	public float getSalario() {
		...
	}
}

public static void main(String[] args) {

	LinkedList<Pessoa> list = new LinkedList<Pessoa>();

	Pessoa p1 = New Pessoa();
	p1.setNome(...);
	p1.setSalario(...);
	list.add(p1);


	Pessoa p2 = New Pessoa();
	p2.setNome(...);
	p2.setSalario(...);
	list.add(p2);

	Pessoa p3 = New Pessoa();
	p3.setNome(...);
	p3.setSalario(...);
	list.add(p3);

}

Como faço para ordenar essa lista de pessoas pelo menos e maior salario? Alguem Pode me auxiliar

4 Respostas

gilvan.sfilho

Opa,
da uma olhada nesses links cara


http://wiki.portugal-a-programar.org/java:ordernarlistas

abraços

fabiomedeirosf

Gilvan,

Você pode implementar um Comparator, por exemplo:

public class PessoaSalarioComparator implements Comparator<Pessoa> {

	@Override
	public int compare(Pessoa o1, Pessoa o2) {
		
		return o1.getSalario().compareTo(o2.getSalario());
	}

}

E para ordenar sua lista em ordem crescente de salários:

List<Pessoa> listaPessoas = new ArrayList<Pessoa>();
		
		PessoaSalarioComparator ps = new PessoaSalarioComparator();
		
		//Ordena lista pelos salários
		Collections.sort(listaPessoas, ps);
M

Fabio, aproveitando o tópico, deixa eu te perguntar, qual é a diferença entre a interface Comparator e a Comparable?

fabiomedeirosf

A interface Comparable, vc pode fazer apenas um tipo de comparação

Já Comparator, vc pode fazer quaisquer tipos de orndenação, conforme lhe for conveniente.

Criado 14 de fevereiro de 2011
Ultima resposta 14 de fev. de 2011
Respostas 4
Participantes 4