Estes desafios, no final de cada módulo, se tornam algo bem interessante. Por mais simples que possam ser, deixo aqui como ficou a minha resolução dos desafios 1 ao 4. Ainda sou bem iniciante, então qualquer dica que possa me ajudar é bem-vinda.
OBS: Para não deixar minha classe Main tão poluída, dividi cada desafio em uma classe própria e apenas fiz a inicialização e chamada dos métodos na Main.
Desafio 01
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.
@lombok.experimental.UtilityClass
public class ListInt {
    public static void integers() {
        List<Integer> list = new ArrayList<>();
        for (int i = 10; i > 0; i--) {
            list.add(i);
        }
        Collections.sort(list);
        for (Integer integer : list) {
            System.out.println(integer);
        }
    }
}
Desafio 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.
@lombok.ToString()
@lombok.AllArgsConstructor(access = lombok.AccessLevel.PROTECTED)
public class Title implements Comparable<Title> {
    @lombok.Getter(value = lombok.AccessLevel.PUBLIC)
    @lombok.Setter(value = lombok.AccessLevel.PRIVATE)
    private String name;
    @Override
    public int compareTo(@NotNull Title title) {
        return this.name.compareTo(title.getName());
    }
}
Desafio 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.
public class TitleShow {
    public static void displayTitle() {
        List<Title> titles = new ArrayList<>();
        titles.add(new Title("Yu-Gi-Oh GX"));
        titles.add(new Title("Divergences"));
        titles.add(new Title("Supernatural"));
        Collections.sort(titles);
        for (Title title : titles) {
            System.out.println(title);
        }
    }
}
Desafio 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.
@lombok.Getter(value = lombok.AccessLevel.PUBLIC)
@lombok.Setter(value = lombok.AccessLevel.PUBLIC)
@lombok.NoArgsConstructor(access = lombok.AccessLevel.PUBLIC)
public class ListSwapper {
    private List<Integer> list = new ArrayList<>();
    private List<Integer> list2 = new LinkedList<>();
    private void initializeLists() {
        for (int i = 1; i < 6; i++) {
            list.add(i);
            list2.add(i);
        }
    }
    public void printLists() {
        this.initializeLists();
        if (list.isEmpty()) return;
        for (Integer i : list) {
            System.out.println(i);
        }
        System.out.println(" ");
        if (list2.isEmpty()) return;
        for (Integer i : list2) {
            System.out.println(i);
        }
    }
}
E por fim, a class Main:
public class Main {
    public static void main(String[] args) {
        ListInt.integers();
        System.out.println(" ");
        TitleShow.displayTitle();
        System.out.println(" ");
        ListSwapper listSwapper = new ListSwapper();
        listSwapper.printLists();
    }
}
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
 Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!