Arrays en Java

19/Sep/2009 Java 21 Comentarios

Dentro de Arrays en Java puedes encontrar:

  1. ¿Qué es un array en Java?
  2. Tamaño del array: .length
  3. Matrices o Arrays de varios subindices
  4. Incialización de Arrays en Java

¿Qué es un array en Java?

Un array es una estructura de datos que nos permite almacenar una ristra de datos de un mismo tipo. El tamaño de los arrays se declara en un primer momento y no puede cambiar en tiempo de ejecución como puede producirse en otros lenguajes.

La declaración de un array en Java y su inicialización se realiza de la siguiente manera:

  1. tipo_dato nombre_array[];
  2. nombre_array = new tipo_dato[tamaño];

Por ejemplo, podríamos declarar un array de caracteres e inicializarlo de la siguiente manera:

  1. char arrayCaracteres[];
  2. arrayCaracteres = new char[10];

Los arrays se numeran desde el elemento cero, que sería el primer elemento, hasta el tamaño-1 que sería el último elemento. Es decir, si tenemos un array de diez elementos, el primer elemento sería el cero y el último elemento sería el nueve.

Para acceder a un elemento especifico utilizaremos los corchetes de la siguiente forma. Entendemos por acceso, tanto el intentar leer el elemento, como asignarle un valor.

  1. arrayCaracteres[numero_elemento];

Por ejemplo, para acceder al tercer elemento lo haríamos de la siguiente forma:

  1. // Lectura de su valor.
  2. char x = arrayCaracteres[2];
  3.  
  4. // Asignación de un valor. Como se puede comprobar se pone el número dos, que coincide con el tercer elemento. Ya que como dijimos anteriormente el primer elemento es el cero.
  5. arrayCaracteres[2] = 'b';

El objeto array, aunque podríamos decir que no existe como tal, posee una variable, la cual podremos utilizar para facilitar su manejo.

Tamaño del array: .length

Esta variable nos devuelve el número de elementos que posee el array. Hay que tener en cuenta que es una variable de solo lectura, es por ello que no podremos realizar una asignación a dicha variable.

Por ejemplo esto nos serviría a la hora de mostrar el contenido de los elementos de un array:

  1. char array[];
  2. array = new char[10];
  3.  
  4. for (int x=0;x<array.length;x++)
  5. System.out.printnln(array[x]);

Uno de los axiomas de la orientación a objetos es la ocultación, es decir, que no podemos acceder a una variable declarada dentro de una clase a no ser que lo hagamos a traves de un método de la clase. Aquí estamos accediendo a una variable. ¿Quizás sea por que no consideran a los arrays como objetos?.

Matrices o Arrays de varios subindices

Podremos declarar arrays de varios subíndices, pudiendo tener arrays de dos niveles, que serían similares a las matrices, arrays de tres niveles, que serían como cubos y así sucesivamente, si bien a partir del tercer nivel se pierde la perspectiva geométrica.

Para declarar e inicializar un array de varios subíndices lo haremos de la siguiente manera:

  1. tipo_dato nombre_array[][];
  2. nombre_array = new tipo_dato[tamaño][tamaño];

De esta forma podemos declarar una matriz de 2x2 de la siguiente forma:

  1. int matriz[][];
  2. matriz = new int[2][2];

El acceso se realiza de la misma forma que antes:

  1. int x = matriz[1][1]; // Para leer el contenido de un elemento
  2. matriz[1][1] = x; // Para asignar un valor.

Hay que tener en cuenta que para mostrar su contenido tendremos que utilizar dos bucles. Para saber el número de columnas lo haremos igual que antes mediante la variable length, pero para saber el numero de filas que contiene cada columna lo tendremos que realizar de la siguiente manera:

  1. matriz[numero_elemento].lenght;

Nuestra lectura de los elementos de una matriz quedaría de la siguiente forma:

  1. int matriz[][];
  2. matriz = new int[4][4];
  3. for (int x=0; x < matrix.length; x++) {
  4. for (int y=0; y < matriz[x].length; y++) {
  5. System.out.println (matriz[x][y]);
  6. }
  7. }

Incialización de Arrays en Java

Existe una forma de inicializar un array en Java con el contenido, amoldándose su tamaño al número de elementos a los que le inicialicemos. Para inicializar un array utilizaremos las llaves de la siguiente forma:

  1. tipo_dato array[] = {elemento1,elemento2,...,elementoN};

Así, por ejemplo, podríamos inicializar un array o una matriz:

  1. // Tenemos un array de 5 elementos.
  2. char array[] = {'a','b','c','d','e'};
  3.  
  4. // Tenemos un array de 4x4 elementos.
  5. int array[][] = { {1,2,3,4}, {5,6,7,8}};
05 - Funciones básicas con cadenas
01 - Mi primera aplicación Java

Ejemplos sobre Java

Te adjuntamos algunos ejemplos sobre Java relacionados con el tema tratado.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

21 comentarios en “Arrays en Java”

Víctor Cuervo

Luis Alberto

Se tienen N empleados en una compañía y se ha ideado llenar un arreglo A con los sueldos de los empleados, un arreglo B con las bonificaciones totales de cada empleado, un arreglo C con los descuentos de cada uno. Crear un arreglo T que contenga el neto a pagar a cada empleado. (Neto a pagar = sueldo + bonificaciones – descuentos). Y mostrarlos en pantalla.

Víctor Cuervo

Rafael M

Ya he conseguido la respuesta… para quien pueda interesarle aqui se las dejo:

import javax.swing.JOptionPane;

public class Main {

public static void main(String[] args) {

int i=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese la cantidad de filas de la matriz”));
int w=Integer.parseInt(JOptionPane.showInputDialog(“Ingrese la cantidad de columnas de la matriz”));

int matriz[][] = new int[i][w];

for (int x=0; x < matriz.length; x++) {
for (int y=0; y < matriz[x].length; y++) {
matriz[x][y] =Integer.parseInt(JOptionPane.showInputDialog("Ingrese el un número para la posición "+x+","+y));
}
}

for(int a=0; a<matriz.length; a++){
for(int j=0; j<matriz[0].length; j++){
System.out.print(matriz[a][j]);
}
System.out.println();
}

}

}

Víctor Cuervo

Rafael M

Tengo una duda:
Creo un arreglo multidimensional

int matriz[][] = new int[i][w];

y luego le pido al usuario los valores de i y w.
entonces supongase que el valor de i y w es 2.
la matriz seria 2×2 2 filas 2 columnas…

mi duda es la siguiente:

como hago para pedirle al usuario el valor que quiere para cada posicion de la matriz.. luego llendadas todas las posiciones de la matriz, como hacer para imprimirla…

Víctor Cuervo

neil

La dudas qtengo aun permanecen.. no me la as solucionado del todo..
kiero saber como saber las dimensiones de una matriz?
si de un array o vector de una dimension es:

int v[]= new int [10]; //crear un vector
int dim=v.length; //Tamaño del vector

y me pregunto como seria para un matriz, ya que tiene 2 dimensiones..?????? alguna idea? el ejempio q das lo usas en un FOR, yo lo necesito para comparar 2 matrices..

Víctor Cuervo

neil

La dudas qtengo aun permanecen.. no me la as solucionado del todo..
kiero saber como saber las dimensiones de una matriz?
si de un array o vector de una dimension es:

int v[]= new int [10]; //crear un vector
int dim=v.length; //Tamaño del vector

y me pregunto como seria para un matriz, ya que tiene 3 dimensiones..?????? alguna idea? el ejempio q das lo usas para imprimir nada mas.. no funciona para distintas dimensiones…

Víctor Cuervo

Jonatan Bahut

Alex, la verdad que si solo queres eliminar un dato, porque no solo a esa posicion de memoria, asignas un cero o un null.
No se si sera la manera mas ortodoxa, pero es la que se me ocurrio…

Víctor Cuervo

Alex

hola tengo una duda resulta que estoy haciedo programa con java en eclipce que me ingrese modifique busque y me elimine datos en un doc de txt ya tengo la busqueda, insersioon y modificacion de los datos pero me falta la eliminacion del dato que quiera si alguien me lo pudiera facilitar se lo agradeceria demaciado.
pd:solo necesito saber como se elimina un dato de un arreglo XD.

Víctor Cuervo

cristobal

hola tengo una duda por ejemplo

public static void main(String[] args) {

Scanner tec = new Scanner(System.in);
int c=0;
int[] vec = new int[9];
for (int i=0;i<9;i++){
System.out.println("ingrese el valor para la pos "+i);
vec[i]=Integer.parseInt(tec.next()); }
int aa=vec[1];
int bb=vec[2];
for (int i=3;i<8;i++){
if(vec[i]==aa || vec[i]==bb)
c=0;
else
c=1;
}
if (c==1)
System.out.println("error solo debe ingresar dos tipos de monedas");
else
System.out.println("datos correctos");
}
}

como puedo yo mostrar el numero que cambia hay algun codigo extra qu tengo que saber ante mano gracias

Víctor Cuervo

Luciano

Hola, ya sabia esto, pero tengo una gran dudaaaaa. Estoy creando un video juego y quiero saber como puedo crear un array que siga una sequencia de botones clickeados, por ejemplo si el puzle es algo asi como (1,4,6,2,5) eso quiere decir que debes hacer click en el primer boton, cuarto boton, etc.. para que el codigo se active y aparezca un jlabel en la pagina, he tratadom de buscar info pero no encuentro nada y siento que mi cabeza va a explotar, agradeceria cualquier ayuda, link, manuales, etc, saludos

Víctor Cuervo

manualweb

@sergio,

Hemos creado un artículo que explica cómo instanciar matrices en Java en
http://lineadecodigo.com/java/crear-una-matriz-en-java/

Espero que te sirva de ayuda.

Víctor Cuervo

manualweb

@lira,

Te recomiendo que pongas tu duda en los foros Java de Manual Web.

http://www.dudasprogramacion.com/forum/java-basico

Y así te podremos ayudar mucha gente. 😀

Víctor Cuervo

lira

me podrian ayudar
ya tengoel array ahora la forma de consultarlo no lose
quiero tomar el valor inicial ,final e intermedio del array pero no se como
les dejo mi correo para que me puedan decir como se hace
lira_dark@hotmail.com
gracias

Víctor Cuervo

Ed

Saludos. Tengo este codigo:

try{
Connection conexion = DriverManager.getConnection(url,nom,pass);

Statement stmt = conexion.createStatement();

ResultSet rset = stmt.executeQuery(“select * from bd”);

while(rset.next()){
this.jTable1.setValueAt(rset.getString(1), row, 0);
this.jTable1.setValueAt(rset.getString(2), row,
row++;
}
stmt.close();
} catch(SQLException s){
s.printStackTrace();
}

con él, me conecto a la BD, extraigo la cantidad de registros q haya en dicha base y los refleja en un jtable. El asunto es q tengo un jtable de 50 filas aprox. y por lo tanto refleja solamente 50 registros. Cuando sobrepasa los 50 reg este muestra un error de limite en arrays.
Exception>ArrayIndexOutOfBoundsException: 50 >= 50
Me gustaria saber como hago para q siga mostrando cada registro q vaya ingresando sin q lance errores. Agradezco la ayuda de antemano..

Víctor Cuervo

sergio

hola buen inf…
pero tengo un problema
a la hora de hacer esto:
ob.mat={{1,2},{3,4}};
ob.mat es una matriz;
m dice q es un inicio ilegal…
xq??

Víctor Cuervo

beto

si mr sirvio bastante ahora bien estoy en la etapa de entender pero estoy duro todavia..

Víctor Cuervo

Ever

muy bueno en verdad lo veo bastante completo para un principiante como yo gracias.

Víctor Cuervo

Emilio

no entendi una goma… jajajajajaja
lo lei como 5 veces, pero no entiendo para que se utiliza el ARRAY…
igual, gracias por la info 😀

Víctor Cuervo

raul

Sun (Ahora Oracle) recomienda usar tipo_dato[] nombre_array, y no tipo_dato nombre_array[].

Es decir:
int[] dato;

claro que tambien se puede usar:
int[] dato; o int []dato; o incluso int[] dato[]; para un array bidimensional.

Imagínate si cada uno usa su propia manera, que caos… int []dato[]; int[][] []dato[];…

Víctor Cuervo

leroelro

quede colgado

Víctor Cuervo

jobi

esta bueno pero falta mas info para mi gusto..:D

Víctor Cuervo

Jonathan

Muy buena info! Me sirvio bastante para poder entenderlo 🙂

Slds!

Los comentarios están cerrados.