Los Arreglos en Java son agrupaciones de campos de memoria en los cuales podemos almacenar valores de forma «ordenada», estos valores almacenados pueden ser de tipo primitivo o de objetos (clases), para manipular los datos(agregar, eliminar, buscar) se accede a ellos por medio de su indice, el cual va desde 0 (cero) hasta su valor -1 (n-1), para empezar a enteder lo que es un arreglo tenemos la siguiente imagen:
La anterior imagen es de un arreglo de 10 elementos, cabe aclarar que en los diferentes campos siempre va un valor del mismo tipo de valor (int, float, double, boolean, etc). Sabiendo de antemano las características que poseen los arreglos pasamos a la creación de estos. Para la creación de estos es de la siguiente manera:
1 2 3 4 5 | tipo nombre_arreglo [] = new tipo[n]; int numeros [] = new int [5]; double tales [] = new double {5.5, 3.6, 4.5}; |
tipo nombre_arreglo [] = new tipo[n]; int numeros [] = new int [5]; double tales [] = new double {5.5, 3.6, 4.5};
En la linea 1 vemos la sintaxis usada para crear los arreglos, en la linea 3 vemos un arreglo creado de nombre numeros, y tipo int, este arreglo se crea con un espacio de 5 elementos, recordemos que sus indices van desde 0 hasta 4. En la linea 5 se crea un arreglo de nombre tales, de tipo double, pero no se crea con un numero fijo de elementos sino con los valores almacenados en sus espacios, automaticamente java reconoce que este arreglo tiene 3 elementos. En los dos ejemplos suceden dos cosas diferentes en una misma linea, se declara el tipo y nombre del arreglo, seguidamente se instancia (crea) el elemento (ya sea con un tamaño o con sus valores); lo anterior lo digo ya que las lineas 3 y 5 se pudieron hacer de la siguiente manera:
1 2 3 4 5 | int numeros []; numeros = new int [5]; double tales []; tales = new double {5.5, 3.6, 4.5}; |
int numeros []; numeros = new int [5]; double tales []; tales = new double {5.5, 3.6, 4.5};
Descargar Ejemplo
Como se pudo apreciar podemos crear e instanciar en una misma linea, o por el contrario podemos declarar el arreglo y luego podemos crearlo con el tamaño deseado 😉 Al momento de instanciar los arreglos estos se crean con sus valores predeterminados de cada tipo, asi que se puede empezar a trabajar despues de haber sido creados. Un ejemplo sencillo se demuestra en las siguiente lineas:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public static void main(String[] args) { ArrayJ o = new ArrayJ();//creacion del objeto para invocar el metodo o.Ejem4();//invocacion del metodo System.exit(0);//linea para asegurar la terminacion inmediata de la aplicacion } public void Ejem1(){ int arr1 [] = new int[5];//arreglo de 5 elementos String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento arr1[i]=i;//asignacion del elemento ax+="En el indice "+i+" se almaceno el valor: "+i+"n";//cuando se asigna el valor se acumulan los datos en el mensaje }//fin ciclo JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje. } } |
public static void main(String[] args) { ArrayJ o = new ArrayJ();//creacion del objeto para invocar el metodo o.Ejem4();//invocacion del metodo System.exit(0);//linea para asegurar la terminacion inmediata de la aplicacion } public void Ejem1(){ int arr1 [] = new int[5];//arreglo de 5 elementos String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento arr1[i]=i;//asignacion del elemento ax+="En el indice "+i+" se almaceno el valor: "+i+"n";//cuando se asigna el valor se acumulan los datos en el mensaje }//fin ciclo JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje. } }
Ahora podemos apreciar que para la manipulación de estos se hace por medio de un ciclo, el ciclo for es el mas usado para recorrerlos, en la parte del condicional del ciclo vemos el uso del método length el cual lo usamos para saber el tamaño del arreglo. También se como se asignas los valores a los espacios disponibles, ahora modificare el ejemplo para recibir un valor, multiplicarlo por su posición y asignar este valor en el correspondiente indice:
1 2 3 4 5 6 7 8 9 10 11 12 | public void Ejem2(){ int arr1 [] = new int[5], n;//arreglo de 5 elementos y variable que almacena el numero a multiplicar String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento n = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el numero a multiplicar en la posicion "+(i+1)+": ")); arr1[i]=i*n;//asignacion del numero dado de la multiplicacion del anterior numero ingresado por el indice ax+="En el indice "+i+" se almaceno el valor: "+arr1[i]+"n";//cuando se asigna el valor se acumulan los datos en el mensaje }//fin ciclo JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje. } |
public void Ejem2(){ int arr1 [] = new int[5], n;//arreglo de 5 elementos y variable que almacena el numero a multiplicar String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento n = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el numero a multiplicar en la posicion "+(i+1)+": ")); arr1[i]=i*n;//asignacion del numero dado de la multiplicacion del anterior numero ingresado por el indice ax+="En el indice "+i+" se almaceno el valor: "+arr1[i]+"n";//cuando se asigna el valor se acumulan los datos en el mensaje }//fin ciclo JOptionPane.showMessageDialog(null, ax);//cuando finaliza el ciclo se muestra el mensaje. }
ARREGLOS COMO PARÁMETROS
Muchas veces es necesario pasar como parámetros los arreglos, por que? o para que?, eso solo depende de su creatividad e ingenio 😉 La forma de pasarlos es sencilla, el ejemplo que usare es de un arreglo con los números del 1 al 5, pasare este arreglo a un método el cual modificara sus valores por medio de una suma:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public void Ejem3(){ int arr1 [] = new int[5], n;//arreglo de 5 elementos y variable que almacena el numero a multiplicar String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento n = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el numero en la posicion "+(i+1)+": ")); arr1[i]=n;//asignacion del numero dado de la multiplicacion del anterior numero ingresado por el indice ax+=arr1[i]+" "; }//fin ciclo JOptionPane.showMessageDialog(null, "Arreglo original: "+ax+ "nArreglo modificado: "+camArr(arr1));//cuando finaliza el ciclo se muestra el mensaje. } |
public void Ejem3(){ int arr1 [] = new int[5], n;//arreglo de 5 elementos y variable que almacena el numero a multiplicar String ax="";//variable que acumula el mensaje for(int i=0; i<arr1.length; i++){//ciclo para el recorrido del elemento n = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el numero en la posicion "+(i+1)+": ")); arr1[i]=n;//asignacion del numero dado de la multiplicacion del anterior numero ingresado por el indice ax+=arr1[i]+" "; }//fin ciclo JOptionPane.showMessageDialog(null, "Arreglo original: "+ax+ "nArreglo modificado: "+camArr(arr1));//cuando finaliza el ciclo se muestra el mensaje. }
En el metodo camArr se puede apreciar la forma en la que se recibe un arreglo como parámetro, el nombre con el que se recibe es a criterio propio ya que esta sera una variable temporal (usada solo en este arreglo), al momento de invocarlo solo es necesario enviar como parámetro el nombre del arreglo.
TAMAÑO DE ARREGLO ELEGIDO POR EL USUARIO
La mayoría veces el tamaño de un arreglo depende de las necesidades del usuario, es por eso que se puede definir el nombre del arreglo mucho antes de ser creado, esto ultimo se hace cuando el usuario asigna el tamaño requerido al arreglo con el cual se desea trabajar, un ejemplo ilustrado es lo siguiente:
1 2 3 4 5 6 7 8 | public void Ejem4(){ int arr[], tam;//Declaracion variables del arreglo y el tamaño que tendra el arreglo tam = Integer.parseInt(JOptionPane.showInputDialog(null, "De que tamaño desea el arreglo: "));//se ingresa el tamaño del arreglo arr = new int[tam];//se crea el arreglo con el tamaño deseado por el usuario JOptionPane.showMessageDialog(null, "El tamaño del arreglo es de "+arr.length+" elementos....");//se muestra la cantidad de elemntos del arreglo } |
public void Ejem4(){ int arr[], tam;//Declaracion variables del arreglo y el tamaño que tendra el arreglo tam = Integer.parseInt(JOptionPane.showInputDialog(null, "De que tamaño desea el arreglo: "));//se ingresa el tamaño del arreglo arr = new int[tam];//se crea el arreglo con el tamaño deseado por el usuario JOptionPane.showMessageDialog(null, "El tamaño del arreglo es de "+arr.length+" elementos....");//se muestra la cantidad de elemntos del arreglo }
Mas adelante mostrare como modificar el tamaño (aumentar) de un arreglo ya creado. Espero que este post les haya sido de gran utilidad, recuerdo que el material publicado es para orientar, agradezco cualquier duda o comentario constructivo que deseen dejar.
Hola! Tengo un problemilla q no me deja dormir!!
De un array de «n» enteros, me piden q mi programa imprima los «5 números menores» de esa lista.
En fin… buscado en internet y nada!! Habiendo tantos tutoriales!! Ya me estoy quemando el bocho! se los agradeceriaaaa!!
hola mira tengo un problema ya que necesito multiplicar los valores que estan almacenados en el arreglo sin son 3 elementos deberian multiplicarse entre ellos osea 1*2*3 =6 , pero no he podido realizar esta multiplicacion. ojala puedas ayudarme
aqui te dejo el codigo que tengo
public double mediaNegativos(){
double multi = 0 ;
for (int i = 0; i < array[i]; i++) {
if (array[i] < 0){ //sumar positivos
multi *= array[i];
}
}
return multi;
}
gracias
no entiendo, pero tu condición no deja entrar a la parte que esta multiplicando, ya que i no es un cero nunca entra a esa parte
Hola amigo. disculpa como puedo darle un tamaño por teclado y trabajar el arreglo con clases… saludos
me ayudó mucho, gracias son muy buenos ejemplos, espero que tengas más ejemplos. 🙂
Hola Amigo
Como puedo insertar un dato siemrpe al final de un arreglo. supone que el arreglo es creado de 10 posiciones, aun sin datos.
por favor responde lo mas pronto
Hola, en el ciclo casi siempre se recorre hacia adelante, osea, desde 0 a 9; para lo que requieres, es usar el ciclo al reves, es decir, desde 9 hasta cero, en lugar de incrementrar, decrementas el contador. Saludos.
oye amigo
como puedo convertir un arreglo en un numero
por ejemplo
2, 0, 1, 4
que se convierta a
2014
para poder sumarle algo asi
1, 9
que sea
19
y al final quede asi
2014
19
2033
Concatena las posiciones de los arreglos, por ejemplo si sabes de cuanto es el arreglo puedes poner:
System.out.println(«Array[1]+Array[2]….») y así sucesivamente.
Hola angel, como te contesto roger, puedes hacer eso, luego con ese String, lo pasas a Int y le sumas lo que quieras. Digamos, tu variable String que guarda la concatenacion se llama valor, usas Integer.parseInt(valor), y con esto ya tendras tu numero para sumar.
Gracias por la explicación, fue de gran ayuda.
Excelente tu tema me sirvió mucho