Implementei o que foi ensinado na aula, só que da minha forma.
Mas possuo uma dúvida: Por que separar cada método dessa forma? Tipo, o professor Paulo criou uma Classe só para comparar outra só para exibir mensagem. É boa prática fazer dessa forma? Porque poderia fazer tudo isso em um método só.
package treino;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
public class OrdenacaoLinguagensProgramacao {
public static void main(String[] args) {
List<String> linguagens = new ArrayList<String>();
linguagens.add("C");
linguagens.add("C++");
linguagens.add("C#");
linguagens.add("Java");
linguagens.add("Python");
linguagens.add("JavaScript");
linguagens.add("PHP");
linguagens.add("TypeScript");
linguagens.add("Swift");
linguagens.add("Go");
System.out.println("Lista com as linguagens de programação:");
linguagens.forEach(linguagem -> {
System.out.println(linguagem);
});
System.out.println();
Comparador compara = new Comparador();
Consumer<String> impressao = new Impressao();
linguagens.sort(compara);
System.out.println("Lista organizada por ordem crescente:");
linguagens.forEach(impressao);
}
}
package treino;
import java.util.Comparator;
public class Comparador implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
if (s1.length() < s2.length()) {
return -1;
} else {
return 1;
}
}
}
package treino;
import java.util.function.Consumer;
public class Impressao implements Consumer<String> {
@Override
public void accept(String s) {
System.out.println(s);
}
}
O que acharam?