1. 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.
import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> listaNumeros = new ArrayList<>();
        listaNumeros.add(10);
        listaNumeros.add(8);
        listaNumeros.add(6);
        listaNumeros.add(4);
        listaNumeros.add(2);
        Collections.sort(listaNumeros);
        System.out.println("Lista ordenada: " + listaNumeros);
    }
}
2. 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.
public class Titulo implements Comparable<Titulo> {
    String nome;
    
    public Titulo(String nome) {
        this.nome = nome;
    }
    @Override
    public int compareTo(Titulo outroTitulo) {
        return this.nome.compareTo(outroTitulo.nome);
    }
}
3. 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.
public class Titulo implements Comparable<Titulo> {
    String nome;
    public Titulo(String nome) {
        this.nome = nome;
    }
    @Override
    public int compareTo(Titulo outroTitulo) {
        return this.nome.compareTo(outroTitulo.nome);
    }
}
import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
    
        //criando objetos da classe "Titulo" e adicionando-os numa lista
        ArrayList<Titulo> listaTitulos = new ArrayList<>();
        listaTitulos.add(new Titulo("Madagascar"));
        listaTitulos.add(new Titulo("A Fuga das Galinhas"));
        listaTitulos.add(new Titulo("Patrulha Canina"));
        //utilizando o método "Collections.sort" para ordenar a lista
        Collections.sort(listaTitulos);
        //imprimindo os títulos ordenados
        for (Titulo titulo : listaTitulos) {
            System.out.println(titulo.nome);
        }
    }
}
4. 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.
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class Main {
    public static void main(String[] args) {
        List<String> listaArrayList = new ArrayList<>();
        listaArrayList.add("Elemento 1");
        listaArrayList.add("Elemento 2");
        List<String> listaLinkedList = new LinkedList<>();
        listaLinkedList.add("Elemento A");
        listaLinkedList.add("Elemento B");
        System.out.println("ArrayList: " + listaArrayList);
        System.out.println("LinkedList: " + listaLinkedList);
    }
}
5. Modifique o Exercício 4 para declarar a variável de lista como a interface List, demonstrando o uso de polimorfismo.
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class Main {
    public static void main(String[] args) {
        List<String> listaPolimorfica;
        listaPolimorfica = new ArrayList<>();
        listaPolimorfica.add("Elemento 1");
        listaPolimorfica.add("Elemento 2");
        System.out.println("ArrayList: " + listaPolimorfica);
        listaPolimorfica = new LinkedList<>();
        listaPolimorfica.add("Elemento A");
        listaPolimorfica.add("Elemento B");
        System.out.println("LinkedList: " + listaPolimorfica);
    }
}