1
resposta

Implementando

Queria verificar quanto ao uso desta forma.

import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

class Titulo implements Comparable {

String nome;
int idade;
Double altura;
String cor;

public void dados(String nome, int idade, Double altura, String cor) {
    this.nome = nome;
    this.cor = cor;
    this.idade = idade;
    this.altura = altura;
}

@Override
public int compareTo(Titulo outroTitulo) {
    return this.nome.compareTo(outroTitulo.nome);
}

@Override
public String toString() {
    return nome + ", " + idade + " anos, " + altura + " cm, " + cor;
}

}

public class Novo {

public static void main(String[] args) {
    Titulo meusDados = new Titulo();
    meusDados.dados("Skolly", 27, 1.74, "Negro");
    Titulo meusDados01 = new Titulo();
    meusDados01.dados("Thainá", 25, 1.58, "Branco");
    Titulo meusDados02 = new Titulo();
    meusDados02.dados("Milton", 28, 1.80, "Branco");

    //Dá para ser utilizado ArayList() e LinkedList(), cada um tem suas vantagens, mais na parte de estrutura de dados
    //list<Titulo> titulo = new ArrayList();
    List<Titulo> titulo; //Também dá para ser feito assim (Interface List), usando o polimorfismno
    titulo = new LinkedList<>(); // INterface List
    titulo.add(meusDados);
    titulo.add(meusDados01);
    titulo.add(meusDados02);

    Collections.sort(titulo);
    System.out.println("Lista ordenada por Nome: ");
    for (Titulo amigos : titulo) {
        System.out.println(amigos);
    }

    Collections.sort(titulo);
    titulo.sort((a, b) -> Integer.compare(a.idade, b.idade));
    System.out.println("\nLista ordenada por idade: ");
    for (Titulo porIdade : titulo) {
        System.out.println(porIdade);
    }

    Collections.sort(titulo);
    titulo.sort((a, b) -> Double.compare(a.altura, b.altura));
    System.out.println("\nLista ordenada por altura: ");
    for (Titulo porAltura : titulo) {
        System.out.println(porAltura);
    }

}

}

1 resposta

Oi, Skollymowskyv! Como vai?

Seu código está bem estruturado e demonstra domínio do uso da interface List com LinkedList, além do uso correto do Comparable para ordenação. A divisão dos dados e a reutilização da classe Titulo estão bem organizadas e mostram um bom entendimento de encapsulamento e reutilização.

Uma dica interessante para o futuro é usar o método Collections.reverse() quando quiser inverter rapidamente a ordem da lista já ordenada. Veja este exemplo:


Collections.sort(titulo); // ordena por nome
Collections.reverse(titulo); // inverte a ordem atual

Use Collections.reverse(lista) para inverter a ordem de elementos de forma simples, sem criar uma nova lista.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!