1
resposta

Desafio: hora da prática - Ordenação de dados

Crie uma lista de números inteiros e utilize o método Collections.sort para ordená-la em ordem crescente. Em seguida, imprima a lista ordenada.

package br.com.exercicio.principal;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Principal {
    public static void main(String[] args) {

        ArrayList<Integer> numerosInteiros = new ArrayList<Integer>();
        numerosInteiros.add(6);
        numerosInteiros.add(9);
        numerosInteiros.add(2);
        numerosInteiros.add(7);
        numerosInteiros.add(1);
        numerosInteiros.add(4);

        numerosInteiros.forEach(System.out::println);
        Collections.sort(numerosInteiros);
        System.out.println("Ordenando:");
        System.out.println(numerosInteiros);
    }
}

Saída:

6
9
2
7
1
4
Ordenando:
[1, 2, 4, 6, 7, 9]

Crie uma classe Titulo com um atributo nome do tipo String. Implemente a interface Comparable na classe para que seja possível ordenar uma lista de objetos Titulo.

package br.com.exercicio.modelo;

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

    public String getNome() {
        return nome;
    }

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

No Exercício 2, crie alguns objetos da classe Titulo e adicione-os a uma lista. Utilize o método Collections.sort para ordenar a lista e, em seguida, imprima os títulos ordenados.

package br.com.exercicio.modelo;

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

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

    public String getNome() {
        return nome;
    }

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

    @Override
    public String toString() {
        return "Nome: " + this.getNome();
    }
}
package br.com.exercicio.principal;

import br.com.exercicio.modelo.Titulo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Principal {
    public static void main(String[] args) {
    
        Titulo titulo = new Titulo("João");
        Titulo titulo2 = new Titulo("Aline");
        Titulo titulo3 = new Titulo("Maria");
    
        List<Titulo> nomes = new ArrayList<>();
        nomes.add(titulo);
        nomes.add(titulo2);
        nomes.add(titulo3);
    
        nomes.forEach(System.out::println);
    
        Collections.sort(nomes);
    
        System.out.println("\nOrdenando:");
        for (Titulo titulos : nomes) {
            System.out.println("Nome: " + titulos.getNome());
        }
    }
}

Saída:

Nome: João
Nome: Aline
Nome: Maria

Ordenando:
Nome: Aline
Nome: João
Nome: Maria

Crie uma lista utilizando a interface List e instancie-a tanto como ArrayList quanto como LinkedList. Adicione elementos e imprima a lista, mostrando que é possível trocar facilmente a implementação.

package br.com.exercicio.principal;

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

public class Principal {
    public static void main(String[] args) {

        List<String> listaArrayList = new ArrayList<>();
        listaArrayList.add("A");
        listaArrayList.add("D");
        listaArrayList.add("C");
        listaArrayList.add("B");

        List<String> listaLinkedList = new LinkedList<>();
        listaLinkedList.add("2");
        listaLinkedList.add("4");
        listaLinkedList.add("1");
        listaLinkedList.add("3");

        System.out.println("ArrayList: " + listaArrayList);
        Collections.sort(listaArrayList);
        System.out.println("Ordenando: " + listaArrayList);

        System.out.println("\nArrayList: " + listaLinkedList);
        Collections.sort(listaLinkedList);
        System.out.println("Ordenando: " + listaLinkedList);
    }
}

Modifique o Exercício 4 para declarar a variável de lista como a interface List, demonstrando o uso de polimorfismo.

package br.com.exercicio.principal;

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

public class Principal {
    public static void main(String[] args) {
            
            List<String> polimorfismo;

            polimorfismo = new ArrayList<>();
            polimorfismo.add("Elemento A");
            polimorfismo.add("Elemento B");
            System.out.println("\nArrayList: " + polimorfismo);

            polimorfismo = new LinkedList<>();
            polimorfismo.add("Elemento 1");
            polimorfismo.add("Elemento 2");
            System.out.println("LinkedList: " + polimorfismo);

    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Aline! Como vai?

Gostei bastante de como você estruturou as classes e utilizou o Collections.sort() para ordenar diferentes tipos de listas. Além disso, a implementação da interface Comparable na classe Titulo ficou bem clara e mostra domínio sobre o conceito de polimorfismo e ordenação de objetos personalizados.

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