1
resposta

Desafio: hora da prática Ordenando dados

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

public class Exercicio1 { public static void main(String[] args) { List numeros = new ArrayList<>(); numeros.add(5); numeros.add(1); numeros.add(3); numeros.add(4); numeros.add(2);

    Collections.sort(numeros); // ordenação crescente

    System.out.println("Lista ordenada de inteiros: " + numeros);
}

}

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 outro) {
    return this.nome.compareToIgnoreCase(outro.nome); // ordena por nome (ignorando maiúsculas/minúsculas)
}

@Override
public String toString() {
    return nome;
}

}

import java.util.ArrayList;

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

public class Exercicio3 { public static void main(String[] args) { List titulos = new ArrayList<>(); titulos.add(new Titulo("Vingadores")); titulos.add(new Titulo("Batman")); titulos.add(new Titulo("Homem-Aranha")); titulos.add(new Titulo("Avatar"));

    Collections.sort(titulos);

    System.out.println("Títulos ordenados:");
    for (Titulo titulo : titulos) {
        System.out.println("- " + titulo.getNome());
    }
}

}

import java.util.ArrayList;

import java.util.LinkedList; import java.util.List;

public class Exercicio4 { public static void main(String[] args) { List listaArray = new ArrayList<>(); listaArray.add("Elemento 1"); listaArray.add("Elemento 2"); listaArray.add("Elemento 3");

    System.out.println("Usando ArrayList: " + listaArray);

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

    System.out.println("Usando LinkedList: " + listaLinked);
}

}

import java.util.List;

import java.util.ArrayList; import java.util.LinkedList;

public class Exercicio5 { public static void main(String[] args) { List lista; // variável do tipo interface List

    // Usando ArrayList
    lista = new ArrayList<>();
    lista.add("A");
    lista.add("B");
    lista.add("C");
    System.out.println("Com ArrayList: " + lista);

    // Trocando para LinkedList
    lista = new LinkedList<>();
    lista.add("A");
    lista.add("B");
    lista.add("C");
    System.out.println("Com LinkedList: " + lista);
}

}

1 resposta

Oi, Gabrielly! Como vai?

Seu código está bem estruturado e mostra que você entendeu como aplicar Collections.sort tanto com tipos primitivos quanto com objetos personalizados implementando Comparable. A classe Titulo com o compareTo sobrescrito também está ótima.

Uma dica interessante para o futuro é usar List.of() para criar listas imutáveis de forma mais prática. Veja este exemplo:

import java.util.List;

public class Exemplo {
    public static void main(String[] args) {
        List<String> nomes = List.of("Ana", "João", "Carlos");
        System.out.println(nomes);
    }
}

Esse código cria uma lista fixa (List.of) que não pode ser alterada depois, ideal para listas constantes.

Ícone de sugestão

Para saber mais:

Se você quiser uma lista que possa ser modificada, mas iniciada com alguns valores, pode usar new ArrayList<>(List.of(...)). Assim, você aproveita a praticidade do List.of e mantém a flexibilidade da ArrayList:

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

List<String> nomes = new ArrayList<>(List.of("Ana", "João", "Carlos"));
nomes.add("Beatriz");
System.out.println(nomes);

Esse padrão é muito útil quando queremos uma lista mutável com valores iniciais, algo comum em programas interativos.

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