Contenido de certificación
Buscar
Social
Ofertas laborales ES
« Crear un Singleton | Main | División de Arrays »
lunes
oct222012

Inicialización de arrays bidimensionales

Aunque no se usan con tanta frecuencia como los arrays de una única dimensión, el JDK no proporciona métodos para inicializar estos arrays con un valor determinado.

Se trata de encontrar la manera más eficiente de construir métodos como los que siguen: 

  public <T> void fill(T[][] array, T element) {
      // código que realiza la inicialización del array con el elemento
    }
 public void fill(int[][] array, int element) {
     // código que realiza la inicialización del array con el elemento
    }
  public void fill(double[][] array, double element) {
     // código que realiza la inicialización del array con el elemento
    }
   public static void fill(float[][] array, float element) {
     // código que realiza la inicialización del array con el elemento
    }
e incorporarlos a una clase que podamos añadir a nuestra "caja de herramientas".

 

Reader Comments (2)

Una solución simple:

public static <T> void fill(final T[][] array, final T element) {
for (T[] subarray : array) {
Arrays.fill(subarray, element);
}
}

Lo mismo se haría para el resto de los métodos que declaran array de primitivas.
El problema de fondo de los arrays bidimensionales (o de múltiples dimensiones), es que no se puede dar por sentado que las "columnas" del array (la segunda dimensión, para entendernos) tengan todas el mismo tamaño. Véase el siguiente ejemplo:

byte[][] raggedArray = new byte[5][];
raggedArray[0] = new byte[2];
raggedArray[1] = new byte[2];
raggedArray[2] = new byte[4];
raggedArray[3] = new byte[8];
raggedArray[4] = new byte[3];

Por lo que recorrer el array para inicializarlo no es tan trivial como parece a simple vista.

octubre 23, 2012 | Registered Commenterchoces

Es un tema interesante, y ciertamente, poco usado en el desarrollo. Lo tocaremos más a fondo.

Saludos @choces.

octubre 23, 2012 | Registered Commenterjcarmonaloeches

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>