Ordenação de Lista de objetos em Java

Ordenação de Lista de objetos em Java

Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380

Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /home/feltexco/public_html/felix/wp-content/plugins/wp-syntax/wp-syntax.php on line 380

Ordenação de Lista de objetos em Java

Olá Amigos, hoje vamos fazer a ordenação de uma lista de objetos alunos. Para realizar a ordenação de uma lista de String existe uma ordem natural de ordenação que é a ordem alfabética. Já para uma lista numérica temos a ordem crescente ou decrescente dos números. Em contra partida quando temos um objeto com aluno que possui nome, id e telefone o Java não sabe a ordenação que deve ser realizada. Para isso criamos um exemplo que mostrará qual a melhor forma de você fazer a ordenação da lista?

Ordenação-Lista


Primeiro criaremos a classe Aluno que implementa a Interface Comparable. Isto significa que precisaremos implementar um método compareTo() onde definiremos por qual campo da entidade Aluno
será realizada a ordenação. Em nosso exemplo utilizaremos o campos Nome.

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
38
39
40
41
42
43
44
45
46
47
package br.com.feltex.jse.colecao;
 
class Aluno implements Comparable<Aluno> {
 
	private String nome;
 
	private int id;
 
	private String telefone;
 
	public Aluno(String nome) {
		this.nome = nome;
	}
 
	public int compareTo(Aluno o) {
		return nome.compareTo(o.getNome());
	}
 
	public int getId() {
		return id;
	}
 
	public String getNome() {
		return nome;
	}
 
	public String getTelefone() {
		return telefone;
	}
 
	public void setId(int id) {
		this.id = id;
	}
 
	public void setNome(String nome) {
		this.nome = nome;
	}
 
	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}
 
	public String toString() {
		return "Aluno [nome=" + nome + ", id=" + id + ", telefone=" + telefone
				+ "]";
	}
}

Em nossa classe MinhaListaArrayListObjeto utilizamos a classe Aluno em uma lista e logo em seguida fazemos a ordenação natural.

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
package br.com.feltex.jse.colecao;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class MinhaListaArrayListObjeto {
 
	/*
	 * Comparar objetos
	 */
	public static void main(String[] args) {
		List<Aluno> lista = new ArrayList<>();
		lista.add(new Aluno("Maria"));
		lista.add(new Aluno("Ana"));
		lista.add(new Aluno("Joana"));
		lista.add(new Aluno("Fernanda"));
		lista.add(new Aluno("Tatiana"));
 
		System.out.println("Lista Não Ordenada");
		for (Aluno item : lista) {
			System.out.print(item.getNome() + " ");
		}
 
 
		// Realiza a ordenação dos itens
		Collections.sort(lista);
		System.out.println("Lista Ordenada");
		for (Aluno item : lista) {
			System.out.print(item.getNome()+ " ");
		}		
	}
}

A saída será realizada conforme o exemplo abaixo.

Lista Não Ordenada
Maria Ana Joana Fernanda Tatiana 
Lista Ordenada
Ana Fernanda Joana Maria Tatiana 

Links relacionados


Coleções em Java

Como fazer ordenação de uma lista de String com acentos em Java

Não esqueça de curtir este post nas rede sociais. Dê a sua contribuição social e ajude o autor:

Deixe um comentário