1
resposta

Enxugando o código e usando o replaceAll()

public class OrdenaStrings {
    public static void main(String[] args) {

        List<String> palavras = new ArrayList<>();
        palavras.add("alura online");
        palavras.add("casa do código");
        palavras.add("caelum");

        System.out.println(palavras);

        Collections.sort(palavras);

        System.out.println(palavras);

//        Collections.sort(palavras, new ComparadorPorTamanho());

        palavras.sort(new ComparadorPorTamanho());

        System.out.println(palavras);

        palavras.forEach(new ImprimeNaLinha());

        palavras.replaceAll(new OperadorUnario());

        System.out.println(palavras);

    }
}

class ComparadorPorTamanho implements Comparator<String>{

    @Override
    public int compare(String s1, String s2) {
        return s1.length() - s2.length();
    }

}

class ImprimeNaLinha implements Consumer<String> {
    public void accept(String s) {
        System.out.println(s);
    }
}

class OperadorUnario implements UnaryOperator<String>{

    @Override
    public String apply(String s) {
        return s.toUpperCase();
    }

}
1 resposta

Muito bom Sergio, parabéns