Olá Mary! Talvez para um código pequeno você não enxergue nenhuma vantagem, mas imagine para código um pouco maiores. Imagine que você tenha 5 listas com Strings diferentes:
List<String> lista1 = new ArrayList<>();
List<String> lista2 = new ArrayList<>();
List<String> lista3 = new ArrayList<>();
List<String> lista4 = new ArrayList<>();
List<String> lista5 = new ArrayList<>();
Para percorrer cada Lista dessa você deve fazer um for each para cada certo? e Ficaria um código extenso e repetitivo. Então veja que seria muito melhor criar um único Consumer
de String e aplicar o método foreach
para todas as Strings, veja a diferença abaixo:
MANEIRA SEM O MÉTODO:
List<String> lista1 = new ArrayList<>();
List<String> lista2 = new ArrayList<>();
List<String> lista3 = new ArrayList<>();
List<String> lista4 = new ArrayList<>();
List<String> lista5 = new ArrayList<>();
for(String s1 : lista1){
System.out.println(s);
}
for(String s : lista1){
System.out.println(s);
}
for(String s : lista2){
System.out.println(s);
}
for(String s : lista3){
System.out.println(s);
}
for(String s : lista4){
System.out.println(s);
}
for(String s : lista5){
System.out.println(s);
}
MANEIRA COM O MÉTODO:
List<String> lista1 = new ArrayList<>();
List<String> lista2 = new ArrayList<>();
List<String> lista3 = new ArrayList<>();
List<String> lista4 = new ArrayList<>();
List<String> lista5 = new ArrayList<>();
Consumer<String> consumidor = new ConsumidorDeStrings();
lista1.forEach(consumidor);
lista2.forEach(consumidor);
lista3.forEach(consumidor);
lista4.forEach(consumidor);
lista5.forEach(consumidor);
Veja que a segunda forma é menor apenas para um exemplo simples, imagine para regras de negócio mais complexas.
Espero ter ajudado! Bons Estudos!