una - matriz nxn java




Uso de una matriz de longitud cero (2)

Es más fácil trabajar con null en muchos casos, donde null es la alternativa obvia.

Supongamos que desea devolver un Iterable<String> contenga (por ejemplo) una lista de nombres de archivos relevantes ... pero no los hay por algún motivo. Podría devolver null para indicar eso, pero luego la persona que llama debe tener un caso especial. En cambio, si devuelve una colección vacía, la persona que llama aún puede usar un bucle for mejorado:

for (String file : getFiles())

Entonces, ¿por qué usar una matriz vacía en lugar de una ArrayList vacía o algo similar? Las matrices tienen un tamaño fijo, por lo que una matriz vacía es efectivamente inmutable. Eso significa que puede mantener un valor único y devolverlo a quien quiera, sabiendo que no puede hacer nada con él. Eso puede ser muy útil en algunas situaciones.

Por ejemplo, podemos construir una matriz como esta:

 new ElementType[0];

He visto una construcción así, pero no entiendo por qué esto podría ser útil.


Un ejemplo. Diga, usted tiene una función

public String[] getFileNames(String criteria) {

para obtener algunos nombres de archivo. Imagine que no encuentra ningún nombre de archivo que satisfaga los criterios. ¿Qué devuelves? Tiene 2 opciones: devolver nulo o una matriz de 0 tamaños .

La variante con matriz de 0 tamaños es mejor, porque la persona que llama no necesita verificar NULL y puede procesar la matriz de una manera consistente, por ejemplo, en un bucle (que estaría vacío en este caso).

Hay un capítulo sobre esto en Java efectivo, artículo 27





arrays