List<String> nomes = new ArrayList<>();
nomes.add("Super Mario");
nomes.add("Yoshi");
nomes.add("Donkey Kong");
nomes.forEach((nomesX) -> System.out.println(nomes));
} }
List<String> nomes = new ArrayList<>();
nomes.add("Super Mario");
nomes.add("Yoshi");
nomes.add("Donkey Kong");
nomes.forEach((nomesX) -> System.out.println(nomes));
} }
Desta maneira que está fazendo você está fazendo um laço no ArrayList nomes, e exibindo o valor dele não da variável que definiu no laço nomesX logo a saída do console será
[Super Mario, Yoshi, Donkey Kong]
[Super Mario, Yoshi, Donkey Kong]
[Super Mario, Yoshi, Donkey Kong]Para ter o os nomes exibidos um por vez troque o a variavel nomes do System.out.println(nomes) para nomesX. Pois a variável que fica entre os parênteses no forEach é um elemento da Lista de Strings logo ela é um elemento da repetição do laço, por isso normalmente usa-se o nome da lista no singular como por exemplo nome.
Código final:
List<String> nomes = new ArrayList<>();
nomes.add("Super Mario");
nomes.add("Yoshi");
nomes.add("Donkey Kong");
nomes.forEach((nome) -> System.out.println(nome));
Ou você pode fazer assim:
List<String> nomes = new ArrayList<>();
nomes.add("Super Mario");
nomes.add("Yoshi");
nomes.add("Donkey Kong");
nomes.forEach( System.out::println);