Preciso ordenar uma lista por um atributo do tipo LocalDate em java, não faço ideia de como começar…ainda tem o problema que essa parte eh um relatório então a lista original deve se manter da mesma forma. Eh um tipo de filtro top dez.
Lista<TipoDado> lista = new ArrayList<TipoDado>(listaOriginal);
lista.sort(Comparator.comparing(TipoDado::getAtributo));
1 curtida
staroski, o tipo de dado na declaração da lista acima…eh o da lista original?
Fiz essas classes para testar fora do sistema, para ficar mais fácil pra mim e tal…
Essa eh a Dados…tem os atributos nome e idade e a lista.
import java.util.List;
import java.util.ArrayList;
import java.time.LocalDate;
class Dados {
private String nome;
private LocalDate data;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public LocalDate getData(){
return data;
}
public void setData(LocalDate data){
this.data = data;
}
ArrayList<Dados> teste = new ArrayList<Dados>();
public void Cadastrar(String nome, LocalDate data){
setNome(nome);
setData(data);
}
}
//Essa eh a main
import java.time.LocalDate;
class Main {
public static void main(String[] args) {
System.out.println("Iniciando...\n");
Dados d = new Dados();
Dados e = new Dados();
Dados f = new Dados();
Dados g = new Dados();
e.Cadastrar("Anonymous",LocalDate.of(2010, 11, 13));
f.Cadastrar("ET",LocalDate.of(2011, 11, 13));
g.Cadastrar("Luis",LocalDate.of(2012, 11, 13));
d.teste.add(e);
d.teste.add(f);
d.teste.add(g);
//imprimindo só para teste
for(int x = 0; x < d.teste.size(); x++){
System.out.println(""+d.teste.get(x).getNome());
}
// staroski
Lista<TipoDado> lista = new ArrayList<TipoDado>(listaOriginal);
lista.sort(Comparator.comparing(TipoDado::getAtributo));
//imprimir nova lista aq
}
}