Popular atributos de um array usando ForEach

Java

24/11/2018

estou estudando o uso do Foreach, e queria saber se tem como atraves do foreach eu ir instanciando as posicoes do meu array e recebendo valores pros seus atributos. Por exemplo eu tenho um classe Cliente, e na minha classe principal eu declaro um array do tipo Cliente, e dentro do foreach eu pego informacoes usando o Scanner, e a partir das informacoes digitadas eu queria ja ir instanciando as posicoes desse array com essas info.

Classe Cliente

public class Cliente {
	
	private String cpf;
	private String nome;
	
	public Cliente(String cpf, String nome) {
		this.cpf = cpf;
		this.nome = nome;
	}
	
	public String getCpf() {
		return this.cpf;
	}
	
	public String getNome() {
		return this.nome;
	}
	
	public void exibeDados(Cliente cliente) {
		System.out.println("Nome: "+getNome());
		System.out.println("Cpf: "+getCpf());
	}
}


Classe Principal

import java.util.Scanner;

public class CaixaEletronicoMain {

	public static void main(String[] args) {
		
		Cliente [] clientes = new Cliente[3];
		
		Scanner scan = new Scanner(System.in);
		
		for(Cliente cliente : clientes) {
			System.out.println("Digite um nome: ");
			String nome = scan.nextLine();
			System.out.println("Digite um cpf: ");
			String cpf = scan.nextLine();
			// 
		}
		

	}

}
Wendel Rios

Wendel Rios

Curtidas 0

Respostas

Victor Godoi

Victor Godoi

24/11/2018

Boa Tarde...

Vc pode usar assim não e necessário usar o index pois vc pode atualizar diretamento o objeto da lista desta forma.

for(Cliente cliente : clientes) {
System.out.println("Digite um nome: ");
cliente.nome = scan.nextLine();
System.out.println("Digite um cpf: ");
cliente.cpf = scan.nextLine();
}

Mas se vc ainda quiser o index vc pode usar o indexOf para localizar a posição do objeto dentro do array desta forma.
int index = clientes.indexOf(objeto);
se o objeto estiver na lista ele vai retronar a posicão do mesmo ou se nao tiver no array ele vai retornar -1;

se preferir pode usar um for comum

for(int i=0: i < clientes.size() : i++){

}
GOSTEI 0
POSTAR