java - saber - ¿Cómo puedo ver si un elemento en una matriz int está vacío?
saber si un elemento existe en un array java (5)
Crea una constante para definir el valor vacío, por ejemplo:
private static final int EMPTY = -1;
luego crea la matriz como esta:
int[] myArray = new int[size];
Arrays.fill(myArray, EMPTY);
luego, para verificar si un elemento está ''vacío'', haz esto:
if (myArray[i] == EMPTY)
{
//element i is empty
}
ejemplo:
Quiero ver si array[5]
contiene un valor o está vacío.
Debes definir lo que quieres decir con vacío. Dependiendo del tipo de datos de la matriz, puede decidir sobre la semántica de vacío. Por ejemplo, si tiene una matriz de entradas, puede decidir que 0 está vacío. O si la matriz es de tipos de referencia, puede decidir que null está vacío. Luego simplemente verifica comparando la matriz [5] == nulo o la matriz [5] == 0 etc.
Las matrices primitivas (int, float, char, etc.) nunca están "vacías" (supongo que quiere decir "nulo"), porque los elementos primitivos de la matriz nunca pueden ser nulos.
Por defecto, una matriz int generalmente contiene 0 cuando se asigna. Sin embargo, nunca confío en esto (pasó demasiado tiempo escribiendo código C, supongo).
Una forma es elegir un valor que desee tratar como "no inicializado". Podría ser 0, o -1, o algún otro valor que no vaya a usar como valor válido. Inicialice su matriz a ese valor después de asignarlo.
Las matrices de objetos (String [] y cualquier matriz de objetos que extienden Object) pueden tener elementos nulos, por lo que podría crear una matriz Integer [] e inicializarla en nulos. Creo que me gusta esa idea mejor que usar un valor mágico como se describe arriba.
No existe un elemento "vacío" en una matriz de Java. Si la longitud de la matriz es al menos seis, entonces el elemento 5 existe y tiene un valor. Si no ha asignado nada más a esa ubicación, entonces tendrá el valor cero, tal como lo haría el campo no inicializado de un objeto.
Si se trata de una matriz de descendientes de Object
, puede verificar si el elemento es null
.
Los elementos en las matrices primitivas no pueden estar vacíos. Siempre se inicializarán en algo (generalmente 0
para matrices en int
, pero depende de cómo declare la matriz).
Si declara la matriz como tal (por ejemplo):
int [] myArray ;
myArray = new int[7] ;
entonces todos los elementos estarán predeterminados a 0
.
Una sintaxis alternativa para declarar matrices es
int[] myArray = { 12, 7, 32, 15, 113, 0, 7 };
donde los valores iniciales para una matriz (de tamaño siete en este caso) se dan en las llaves {}
.