1
resposta

Desafio Java 04: Ordenando Dados

1. Lista de números inteiros

package OrdenandoDados;

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

public class Ordenar01 {
    public static void main(String[] args) {
        List<Integer> numerosInteiros = new LinkedList<>();

        numerosInteiros.add(5);
        numerosInteiros.add(6);
        numerosInteiros.add(2);
        numerosInteiros.add(9);
        numerosInteiros.add(10);
        numerosInteiros.add(4);
        numerosInteiros.add(1);
        numerosInteiros.add(15);

        System.out.println("Lista original: " + numerosInteiros);
        Collections.sort(numerosInteiros);
        System.out.println("Lista ordenada: " + numerosInteiros);
    }
}

Console:

Lista original: [5, 6, 2, 9, 10, 4, 1, 15]
Lista ordenada: [1, 2, 4, 5, 6, 9, 10, 15]

2 e 3. Classe titulo com atributo nome implementacao de método comparable, criação dos objetos e impressão das listas.

Classe Titulo

public class Titulo implements Comparable<Titulo>{
    private String nome;

    public String getNome() {
        return nome;
    }

    public Titulo(String nome) {
        this.nome = nome;
    }

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

    @Override
    public String toString(){
        return getNome();
    }
}

Main para criar objetos:

        Titulo n1 = new Titulo("Paulo");
        Titulo n2 = new Titulo("Giovana");
        Titulo n3 = new Titulo("Jéssica");
        Titulo n4 = new Titulo("João");
        Titulo n5 = new Titulo("Rafaella");

        ArrayList<Titulo> listaNomes = new ArrayList<>();

        listaNomes.add(n1);
        listaNomes.add(n2);
        listaNomes.add(n3);
        listaNomes.add(n4);
        listaNomes.add(n5);

        System.out.println("Lista original: " + listaNomes);
        Collections.sort(listaNomes);
        System.out.println("Lista ordenada: " + listaNomes);

Console:

Lista original: [Paulo, Giovana, Jéssica, João, Rafaella]
Lista ordenada: [Giovana, João, Jéssica, Paulo, Rafaella]

4. É possível instanciar dessas formas, com arraylist e linkedlist

    ArrayList<Integer> listaLigada = new ArrayList<>();
    //List<Integer> listaLigada = new ArrayList<>();
    //List<Integer> listaLigada = new LinkedList<>();

        listaLigada.add(3);
        listaLigada.add(6);
        listaLigada.add(7);
        listaLigada.add(2);
        listaLigada.add(5);
        listaLigada.add(1);
        listaLigada.add(4);

        System.out.println(listaLigada);

Saída no console:

[3, 6, 7, 2, 5, 1, 4]

5. Eu já fiz dessa forma no exercíccio 4, o trecho é esse:

List<Integer> listaLigada = new LinkedList<>();
1 resposta

Oi, Paulo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código está muito bem estruturado e mostra que você compreendeu o uso de Collections.sort() e da interface Comparable para ordenar tanto números quanto objetos personalizados. A escolha da LinkedList também ficou clara e bem justificada no exercício 5.

Uma dica interessante para o futuro é usar o método sort() da interface List, que pode deixar seu código ainda mais fluido. Veja um exemplo:


List<Integer> numeros = Arrays.asList(3, 1, 4, 1, 5, 9);
numeros.sort(null);
System.out.println(numeros);

Esse código faz o mesmo que Collections.sort(), mas diretamente na lista. O null indica que será usada a ordenação natural dos elementos.

Alura

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