Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: jga en 29 de Septiembre 2015, 11:58
-
Hola amigos , estoy practicando con las matrices multidimensionales , en este caso es tridimensional , pero tengo una incidencia , el codigo es este:
package cursoJava;
public class arrayPaises {
public static void main(String[] args) {
// TODO Auto-generated method stub
String [][][] paises= new String [3][3][3];
//3 Paises
paises[0][0][0]="España";
paises[1][0][0]="Italia";
paises[2][0][0]="Francia";
//Ciudades de los 3 paises
paises[0][0][0]="Madrid";
paises[0][1][0]="Malaga";
paises[0][2][0]="Bilbao";
paises[1][0][0]="Roma";
paises[1][1][0]="Milan";
paises[1][2][0]="Modena";
paises[2][0][0]="Paris";
paises[2][1][0]="Marseille";
paises[2][2][0]="Poitier";
//Calles de las 3 ciudades
paises[0][0][0]="Calle de Madrid 1";
paises[0][0][1]="Calle de Madrid 2";
paises[0][0][2]="Calle de Madrid 3";
paises[0][1][0]="Calle de Malaga 1";
paises[0][1][1]="Calle de Malaga 2";
paises[0][1][2]="Calle de Malaga 3";
paises[0][2][0]="Calle de Bilbao 1";
paises[0][2][1]="Calle de Bilbao 2";
paises[0][2][2]="Calle de Bilbao 3";
paises[1][0][0]="Via di Roma 1";
paises[1][0][1]="Via di Roma 2";
paises[1][0][2]="Via di Roma 3";
paises[1][1][0]="Via di Milan 1";
paises[1][1][1]="Via di Milan 2";
paises[1][1][2]="Via di Milan 3";
paises[1][2][0]="Via di Modena 1";
paises[1][2][1]="Via di Modena 2";
paises[1][2][2]="Via di Modena 3";
paises[2][0][0]="Rue du Paris 1";
paises[2][0][1]="Rue du Paris 2";
paises[2][0][2]="Rue du Paris 3";
paises[2][1][0]="Rue du Marseille 1";
paises[2][1][1]="Rue du Marseille 2";
paises[2][1][2]="Rue du Marseille 3";
paises[2][2][0]="Rue du Poitier 1";
paises[2][2][1]="Rue du Poitier 2";
paises[2][2][2]="Rue du Poitier 3";
for(int i=0;i<paises.length;i++){
System.out.println(paises[i]);
for(int j=0;j<paises[i].length;j++){
System.out.println(" "+paises[i][j]);
for(int k=0;k<paises[i][j].length;k++){
System.out.println(" "+paises[i][j][k]);
}
}
}
}
}
pero al imprimir por consola aparece esto:
[[Ljava.lang.String;@659e0bfd //pais 1
[Ljava.lang.String;@2a139a55 //ciudad 1 de pais 1
Calle de Madrid 1
Calle de Madrid 2
Calle de Madrid 3
[Ljava.lang.String;@15db9742 //ciudad 2 de pais 1
Calle de Malaga 1
Calle de Malaga 2
Calle de Malaga 3
[Ljava.lang.String;@6d06d69c //ciudad 3 de pais 1
Calle de Bilbao 1
Calle de Bilbao 2
Calle de Bilbao 3
[[Ljava.lang.String;@7852e922 //pais 2
[Ljava.lang.String;@4e25154f //ciudad 1 de pais 2
Via di Roma 1
Via di Roma 2
Via di Roma 3
[Ljava.lang.String;@70dea4e //ciudad 2 de pais 2
Via di Milan 1
Via di Milan 2
Via di Milan 3
[Ljava.lang.String;@5c647e05 //ciudad 3 de pais 2
Via di Modena 1
Via di Modena 2
Via di Modena 3
[[Ljava.lang.String;@33909752 // pais 3
[Ljava.lang.String;@55f96302 //ciudad 1 de pais 3
Rue du Paris 1
Rue du Paris 2
Rue du Paris 3
[Ljava.lang.String;@3d4eac69 //ciudad 2 de pais 3
Rue du Marseille 1
Rue du Marseille 2
Rue du Marseille 3
[Ljava.lang.String;@42a57993 //ciudad 3 de pais 3
Rue du Poitier 1
Rue du Poitier 2
Rue du Poitier 3
No entiendo porque aparecen esas variables en vez del pais y la ciudad correspondiente.
Saludos.
-
Hola jga!
No estás manejando bien los índices y parece que tienes algunos errores o incongruencias, por ejemplo:
Primero tienes paises[0][0][0]="España";
Luego tienes paises[0][0][0]="Madrid";
Y luego tienes paises[0][0][0]="Calle de Madrid 1";
Esto no tiene sentido, estás sobreescribiendo la misma variable con distintos contenidos.
Tratar de imprimir paises[ i ] por pantalla tampoco tiene lógica porque no tienes un array unidimensional, toda referencia debes tenerla con tres dimensiones porque estás trabajando con tres dimensiones
Recomendamos seguir este curso paso a paso donde se explican todos los conceptos, ahí está todo explicado: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188
Saludos!