Java - Array Bidimensional, obtener posición

 
Vista:

Array Bidimensional, obtener posición

Publicado por Jimmy (1 intervención) el 11/03/2014 10:13:59
¿Alguien sabe cómo obtener el ÍNDICE de una POSICIÓN en un array bidimensional? Sé que hay que crear una variable auxiliar para guardar la posición en el if donde impongo la condición pero me sale error.

Tengo el caso siguiente:

Tenemos un array de chars (el nombre de cada habitación, la letra vamos)
a b c d e f g h i j k l m n o p q r s t

Y un array bidimensional, del que calculo el nombre de plazas libres:
5 3 0 1 0 0 3 5 1 3 2 2 1 1 0 0 0 4 1 4

El siguiente indica la planta del edificio pero es fácil de encontrar.
4 5 1 3 4 3 5 3 0 2 2 4 0 4 5 0 4 5 2 4

Indiqueu el nombre de places:
5
Les habitacions que tenen aquest nombre de places són 2

Lo calcula bien... pero QUIERO SABER LA POSICIÓN, por lo tanto, en el array de plazas libres que forma parte del array bidimensional hay que encontrar la posición (para luego comparar con la posición del array de chars)....

¿alguien me ayuda?

public class Exercicis09 {

public int[][] generarNombres() {
int vector[][] = new int[20][2];
Random random = new Random();
//El problema és que a les dues columnes genera el mateix random!
for (int i = 0; i < vector.length; i++) {
for (int j = 0; j < vector[i].length; j++) {
vector[i][j] = random.nextInt(6);
}

}
return vector;
}

//Mostra el nom de les habitacions passant-la com a paràmetre
public void mostrarMatriu(int[][] dades, char[] noms) {
for (int i = 0; i < noms.length; i++) {
System.out.print(noms[i] + "\t");
}
System.out.println("\n");

//Imprimir. Columna g (places). Posició 0 és la primera columna.
for (int j = 0; j < dades.length; j++) {
System.out.print(dades[j][0] + "\t");
}
System.out.println("\n");
//Columna g (planta). Posició 1 és la segona columna.
for (int g = 0; g < dades.length; g++) {
System.out.print(dades[g][1] + "\t");
}
}

//Escriviu un mètode que ens digui quantes habitacions tenim d'un determinat
//nombre de places i quines són.
public void segonsPlaces(int dades[][], int places) {
int comptador = 0;
int[] posicions = new int[comptador];
for (int i = 0; i < dades.length; i++) {
if (dades[i][0] == places) {
comptador++;
Aquí debería crear una variable auxiliar para ir almacenando la posición PERO ME DA ERROR de que no puedo almacenar la posición de un array BIDimensional a un array UNIdimensional...
}

}

System.out.println("Les habitacions que tenen aquest"
+ "nombre de places són " + comptador);

}

public static void main(String[] args) {
Exercicis09 p = new Exercicis09();
UtilitatsConsola utilitats = new UtilitatsConsola();
char[] noms = "abcdefghijklmnopqrst".toCharArray();
int[][] dades = p.generarNombres();
p.mostrarMatriu(dades, noms);
int places = lector.nextInt();
p.segonsPlaces(dades, places);
System.out.println("\n");

}

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

Array Bidimensional, obtener posición

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 11/03/2014 15:40:56
Hola,
Puedes hacer esto, en el for:
1
2
3
4
5
6
7
8
9
int posicionI=0;
int posicionJ=0;
for (int i = 0; i < dades.length; i++) {
   if (dades[i][0] == places) {
         posicionI=i;
         posicionJ=0;
break;
     }
}
declaras dos enteros para guardar la fila y columna y listo.
Espero te sirva,
Salu2,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar