1
resposta

[PROPOSTA DE SOLUÇÃO] 12 Desafio: hora da prática

package br.com.alura.desafiosp2.desafio1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// 01. Crie uma lista de números inteiros e utilize o metodo Collections.sort para ordená-la em ordem crescente. Em seguida, imprima a lista ordenada.
public class Numeros  {
    public static void main(String[] args) {
        List<Integer> listaDeNumeros = new ArrayList<>();
        listaDeNumeros.add(5);
        listaDeNumeros.add(18);
        listaDeNumeros.add(42);
        listaDeNumeros.add(3);
        System.out.println("Lista: "+listaDeNumeros);
        Collections.sort(listaDeNumeros);
        System.out.println("Lista ordenada: "+listaDeNumeros);
    }
}
package br.com.alura.desafiosp2.desafio2;

// 02. 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.
// 03. 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.

import java.util.*;

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

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

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

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

    public static void main(String[] args) {
        List<Titulo> listaDeTitulos = new ArrayList<>();
        Titulo t1 = new Titulo();
        t1.setNome("Dominando o Java com Collections");

        Titulo t2 = new Titulo();
        t2.setNome("Explorando o Poder do sort()");

        Titulo t3 = new Titulo();
        t3.setNome("A Jornada de uma Lista em Java");

        listaDeTitulos.add(t1);
        listaDeTitulos.add(t2);
        listaDeTitulos.add(t3);

        System.out.println("lista: " +listaDeTitulos);
        listaDeTitulos.sort(Comparator.comparing(Titulo::getNome));
        System.out.println("Lista Ordenada: " + listaDeTitulos);

// 04. 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
        List<String> lista = new LinkedList<>();
        lista.add("Muito Simples!");
        lista.add("Pequena semelhança entre elas");
        lista.add("essa é uma list do tipo String");
        System.out.println("LinkedList: " + lista);

// 05. Modifique o Exercício 4 para declarar a variável de lista como a interface List, demonstrando o uso de polimorfismo.
       lista = new ArrayList<>();
       lista.add("Muito Simples!");
       lista.add("Pequena semelhança entre elas");
       lista.add("essa é uma list do tipo String");

       System.out.println("ArrayList: " + lista);
    }
}
1 resposta

Oi, Márcio! Como vai?

Agradeço por compartilhar sua solução com a comunidade Alura.

Você conseguiu aplicar muito bem os conceitos de ordenação, interface Comparable e uso de List com polimorfismo. Foi uma ótima prática para consolidar a diferença entre ArrayList e LinkedList, além de mostrar que podemos alternar facilmente a implementação quando declaramos a variável com a interface List.

Parabéns por praticar.

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