Autor Tema: Matriz multidimensional Java  (Leído 3349 veces)

jga

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 31
    • Ver Perfil
Matriz multidimensional Java
« 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:
Código: [Seleccionar]
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:
Código: [Seleccionar]
[[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.
« Última modificación: 01 de Octubre 2015, 09:47 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Matriz multidimensional Java
« Respuesta #1 en: 01 de Octubre 2015, 09:48 »
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!
Responsable de departamento de producción aprenderaprogramar.com

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".