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();
}
}