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