For Each java

Alguem poderia me dar uma melhor definição do** laço for each**, algum exemplo ? Desde já agradeço

O foreach é um syntactic sugar, ele facilita ao percorrer uma lista por exemplo, assim:

for (Tipo variável:lista) {
    //corpo do for 
}

É como nosso amigo AndryPontes falou, a partir do java 8 ele inseriu “seu próprio foreach”, antes faziamos o foreach da seguinte forma em java:

    // um array de clientes
    List<Clientes> listaClientes = new ArrayList<>();
    //o que faziamos e fazemos para pecorrer essas lista.
    for(Cliente cliente: ListaClientes){
      system.out.println(cliente.getNome());
    }

a partir do java 8 usamos seu proprio foreach, junto com a lambda ex:

listaClientes.foreach(cliente -> system.out.println(cliente.getNome));

Veja que fica bem menor o código e faz a mesma função.

1 curtida

vlw

Genivaldo Recomendo a leitura deste blog aqui e veja as novidades: novidades do JAVA 8 Lambda

Galera, to usando uma arraylist na arquitetura MVC.

No caso, quando criei a arraylist pus como tipo de dado a classe Model, onde ficará guardado os valores que o usuario digitou na View:

ArrayList <InserirModel> Insere = new ArrayList <>();

Porém, quando vou criar um metodo no Controller, ele não aceita eu criar o iterator da foma:

public class ViewController {
    
    InserirModel im = new InserirModel();

    public void mostraDados(ArrayList a) {
    for (InserirModel obj : a) {
            
        // Digitando isso, o NetBeans ja me da um alerta dizendo pra mudar a variável "obj" para o tipo Object, mas dessa forma, perco a referência ao Model. 
        
        }

Como suceder nesse caso?

Quando crio o for each na View, ele aceita, mas no Controller, ele da esse alerta

Já foi respondido neste tópico, de qualquer forma, segue a explicação:

As implementações da interface List são genéricas desde o Java 5, então procure especificar o tipo de dado ao declará-las.
Se não especificar o tipo, o compilador entende como sendo Object.

Troque a seguinte assinatura de método:

public void mostraDados(ArrayList a) {

Para ser assim:

public void mostraDados(List<InserirModel> a) {