import java.util.*;
public class CollectionsExemplo {
public static void main(String[] args) {
// Exercício 1: Ordenação de uma lista de números inteiros
List<Integer> numeros = new ArrayList<>();
numeros.add(5);
numeros.add(2);
numeros.add(8);
numeros.add(1);
numeros.add(9);
Collections.sort(numeros); // Ordena a lista em ordem crescente
System.out.println("Lista de Números Ordenada: " + numeros);
// Exercício 2: Ordenando objetos da classe Titulo
List<Titulo> titulos = new ArrayList<>();
titulos.add(new Titulo("Amor"));
titulos.add(new Titulo("Alegria"));
titulos.add(new Titulo("Tristeza"));
titulos.add(new Titulo("Esperança"));
Collections.sort(titulos); // Ordena a lista usando o compareTo implementado na classe Titulo
System.out.println("Lista de Títulos Ordenada: " + titulos);
// Exercício 3 e 4: Uso da interface List com diferentes implementações
// Instanciando a lista como ArrayList:
List<String> listaArray = new ArrayList<>();
listaArray.add("Elemento 1");
listaArray.add("Elemento 2");
listaArray.add("Elemento 3");
System.out.println("Lista como ArrayList: " + listaArray);
// Instanciando a lista como LinkedList:
List<String> listaLinked = new LinkedList<>();
listaLinked.add("Elemento A");
listaLinked.add("Elemento B");
listaLinked.add("Elemento C");
System.out.println("Lista como LinkedList: " + listaLinked);
}
}
// Classe Titulo que implementa Comparable para ordenação pelo atributo nome.
class Titulo implements Comparable<Titulo> {
private String nome;
public Titulo(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
// Define a ordem natural dos objetos Titulo comparando os nomes
@Override
public int compareTo(Titulo outroTitulo) {
if (outroTitulo == null) {
throw new NullPointerException("Comparação com objeto nulo não é permitida.");
}
return this.nome.compareTo(outroTitulo.nome);
}
@Override
public String toString() {
return nome;
}
}