import java.util.*;
class Titulo implements Comparable { private String nome;
public Titulo(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
@Override
public int compareTo(Titulo outro) {
return this.nome.compareTo(outro.getNome());
}
@Override
public String toString() {
return nome;
}
}
public class Main { public static void main(String[] args) { // Exercício 1: Ordenando uma lista de números inteiros List numeros = new ArrayList<>(Arrays.asList(5, 2, 8, 1, 3)); Collections.sort(numeros); System.out.println("Lista de números ordenada: " + numeros);
// Exercício 2: Ordenando uma lista de objetos Titulo
List<Titulo> titulos = new ArrayList<>();
titulos.add(new Titulo("Java Programming"));
titulos.add(new Titulo("Data Structures"));
titulos.add(new Titulo("Algorithms"));
Collections.sort(titulos);
System.out.println("Lista de títulos ordenada:");
for (Titulo titulo : titulos) {
System.out.println(titulo.getNome());
}
// Exercício 3: Demonstrando a troca de implementação de lista
List<String> arrayList = new ArrayList<>();
arrayList.add("Elemento 1");
arrayList.add("Elemento 2");
arrayList.add("Elemento 3");
System.out.println("ArrayList: " + arrayList);
List<String> linkedList = new LinkedList<>();
linkedList.add("Elemento A");
linkedList.add("Elemento B");
linkedList.add("Elemento C");
System.out.println("LinkedList: " + linkedList);
// Exercício 4: Usando polimorfismo com a interface List
List<String> listaPolimorfica;
listaPolimorfica = new ArrayList<>();
listaPolimorfica.add("Elemento X");
listaPolimorfica.add("Elemento Y");
listaPolimorfica.add("Elemento Z");
System.out.println("Lista polimórfica como ArrayList: " + listaPolimorfica);
listaPolimorfica = new LinkedList<>();
listaPolimorfica.add("Elemento P");
listaPolimorfica.add("Elemento Q");
listaPolimorfica.add("Elemento R");
System.out.println("Lista polimórfica como LinkedList: " + listaPolimorfica);
}
}