Duvida Array [Resolvido]

6 respostas
LucasAdri07

Olá pessoal

Estou começando a ver Array e estou com algumas duvidas, se puderem me ajudar agradeço.

Tenho o seguinte:

public class Array { public static void main (String rgs []){ String [][] dogs = {{"Terry", "Brown"}, {"Kristin", "White"}, {"Toby", "Gray"}, {"Fido", "Black"}}; System.out.print(dogs[2][0] + " "); System.out.println(dogs[2][1]); } }

Quando executo ele exibe:

Toby Gray

Sei que um Array começa do 0 e vai até o numero do Array-1, mas não entendi direito porque tenho que fazer dois System.out para exibir o cachorro e a cor dele, e se posso colocar exemplo: "Toby,“Gray”,“Like cookies” e fazer um.

System.out.print(dogs[2][0] + " "); System.out.println(dogs[2][1]); System.out.println(dogs[2][3]);

Grato desde já…

[EDIT]

Gostaria de saber também se da para chamar esse array de outra classe, para usar como uma tabela com alguns cadastros, e se seria bom fazer isso enquanto estou começando…

6 Respostas

LucasAdri07

Bem consegui entender agora, só que agora estou com outro problema :(

O aplicativo ficou assim:

import javax.swing.JOptionPane;


public class Array {
public static void main (String rgs []){
	String [][] dogs = {{"Terry", "Marrom","Ração"},
			{"Kristin", "Branco","Osso"},
			{"Toby", "Cinza", "Cookies"},
			{"Fido", "Preto", "Ração"}};
	
	String cachorro;
	cachorro = JOptionPane.showInputDialog(null,
			"Digite o nome do Cachorro");
	
	if (cachorro.equalsIgnoreCase("Terry")) {
		
		JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[0][0] + " ");
		JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[0][1] + " ");
		JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " +	dogs[0][2]);
			
	} else if (cachorro.equalsIgnoreCase("Kristin")) {
	JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[1][0] + " ");
	JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[1][1] + " ");
	JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " +	dogs[1][2]);
}
	else if (cachorro.equalsIgnoreCase("Toby")) {
		
		JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[2][0] + " ");
		JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[2][1] + " ");
		JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " +	dogs[2][2]);
		
	}
	else if (cachorro.equalsIgnoreCase("Fido")) {
		
		JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[3][0] + " ");
		JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[3][1] + " ");
		JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " +	dogs[3][2]);
		
	}
	else {
		JOptionPane.showMessageDialog(null,
				"Nome do cachorro inválido ou não existe");
	}
}
}

Está muito gambiarra esses if's, gostaria de saber se há como percorrer esse Array, procurando pelo Nome do cachorro, pra não ter que usar if's, pois imagino um projeto com 10 mil cadastros, não tem como eu fazer if's para todos os nomes.

Se tiverem sugestões para me ajudar também agradeço, para melhorar esse projeto...

Eder_Peixoto

Utilize for.

LucasAdri07

Hmm, eu pensei em um while mais não tinha uma ideia, mas o for pode ser também.
Mas então eu colocaria dentro do for pra ele percorres buscando aquele nome pela posição dele ex: [0], [1].

Ou pelo nome ex:

“Terry”

Obrigado…

Eder_Peixoto

Você que irá decidir qual forma de pesquisa. Poderia, por exemplo, criar dois métodos: um para pesquisar pelo índice e outro pelo nome.

LucasAdri07

então eu faço isso +/-:

for (int i=0; i < dogs.length; i++ ) if (dogs[i][0].equals(cachorro)) { JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[0][0] + " "); JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[0][1] + " "); JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " + dogs[0][2]); }

Mas terei que colocar os JOptionPane pra cada cachorro?

Ex:

JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[1][0] + " "); JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[1][1] + " "); JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " + dogs[1][2]);

E assim por diante?

LucasAdri07

Eder consegui.

Ficou assim:

import javax.swing.JOptionPane;


public class Array {
public static void main (String rgs []){
	String [][] dogs = {{"Terry", "Marrom","Ração"},
			{"Kristin", "Branco","Osso"},
			{"Toby", "Cinza", "Cookies"},
			{"Fido", "Preto", "Ração"}};
	String cachorro;
	cachorro = JOptionPane.showInputDialog(null,
			"Digite o nome do Cachorro");
	
	for (int i=0; i < dogs.length; i++ )	
		if (dogs[i][0].equals(cachorro)) {
			
			JOptionPane.showMessageDialog(null,"Nome do Cachorro: " + dogs[i][0] + " ");
			JOptionPane.showMessageDialog(null,"Cor do Cachorro: " + dogs[i][1] + " ");
			JOptionPane.showMessageDialog(null,"Qual a comida preferida do cachorro: " +	dogs[i][2]);
		}
}
}

Bem menor que com os if's e mais eficiente.

Muito obrigado Eder...

Criado 25 de junho de 2010
Ultima resposta 25 de jun. de 2010
Respostas 6
Participantes 2