0% encontró este documento útil (0 votos)
54 vistas

Arrays en Java

Arrays en java
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
54 vistas

Arrays en Java

Arrays en java
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Está en la página 1/ 17
sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero JAVADESDE CERO Arrays en Java (Con ejemplos) Arrays (htpsljavadesdocero.slcategorialarays/) _Inermedio (tpsiljavadesdocoresleatogoriaintormedto!) POO (hiipsiljavadesdecero.es/categorialpoo!) 12 Comentarios (ntps:ijavadesdecero.es/arraysiunidimensionales-multidimensionalesiticomments) por Alex Walton ORACLE + Oracle Autonomous intel Data Warehouse (http Un array o matriz es simplemente una variable que puede contener valores mailtiples, a diferencia de una igo3 variable regular que solo puede contener un Gnico valor. Los siguientes son algunos puntos importantes acerca de las matrices, arreglos o arrays de Java. + En Java, todas las matrices se asignan dindmicamente. (Se analiza a continuacién) + Como las matrices/arrays son objetos en Java, cada array tiene asociado una variable de instancia de longitud (length) que contiene la cantidad de elementos que la matriz puede contener. (En otras palabras, length contiene el tamafio de la matriz.) + Una variable array en Java se declara como otras variables con corchetes [] después del tipo de datos. + Las variables on el array estan ordenadas y cada una tiene un indice que comienza desde 0. + Elarray Java también se puede usar como un campo estaitco, una variable local o un pardmetro de método. + Eltamafio de un array debe especificarse mediante un valor int y no, long o short. + La superciase directa de un tipo de array es Object. + Cada tipo de array implementa las interfaces Cloneable y java.io.Serializable. + Elarray puede contener tipos de datos primitivos asi como también objetos de una clase segtin la definici6n del array. En el caso de los tipos de datos primitives, los valores reales se almacenan en ubicaciones de memoria contigua. En el caso de los objetos de una clase, los objetos reales se almacenan en heap. Nota: En mateméticas, un array de una dimensién se llama vector. En este curso no x Lutiizaremos este término para no confundirlo con la clase Vector de Java Tabla de Contenido = 4. Qué es un Array en Java 2. Arrays unidimensionales 2.1, Instanciando un array en Java 2.2, Array Literal 2.3. Accediendo a los elementos del Array usando el bucle for 2.4. Arrays de objetos 3. Arrays multidimensionales 3.1, Pasar arrays a métodos 3.2, Retornando arrays de métodos Politica de Privacidad & Cookies hitps:javadesdecero.es/arraysiunidimensionales-multcimensionales/ ant aigi22 17:41 Arrays en Java (Con ejemplos) | Java desde Cero 3.3, Objectos Class para arrays 5. Asignacién de referencias en Arrays 6. Clonacion de arrays 7. Uso de length en Arrays 1. Qué es un Array en Java Una array o arreglo es una coleccién de variables del mismo tipo, a la que se hace referencia por un nombre ‘comin. En Java, los arrays pueden tener una o mas dimensiones, aunque el array unidimensional es el mas ‘comin. Los arrays se usan para una variedad de propésitos porque ofrecen un medio conveniente de agrupar variables relacionadas. Por ejemplo, puede usar una matriz para mantener un registro de la temperatura alta diaria durante un mes, una lista de promedios de precios de acciones o una lista de tu coleccién de libros de programacién. La ventaja principal de un array es que organiza los datos de tal manera que puede ser manipulado facilmente. Por ‘ejemplo, si tiene un array que contiene los ingresos de un grupo seleccionado de hogares, es facil calcular el ingreso promedio haciendo un ciclo a través del array. Ademés, los arrays organizan los datos de tal manera que se pueden ‘ordenar facilmente. ¢Buscando mas et reiste tu base de datos? ‘Aunque los arrays en Java se pueden usar como matrices en otros lenguajes de(ptgssameninpliehta ren euriielvertis ‘especial: se implementan como objetos. Este hecho es una de las razones pordagane uadiaqusjon de los arrays se pospuso hasta que se introdujeron los objetos. Al implementar arrays como objetos, se obtienen varias ventajas importantes, una de las cuales es que los arrays no utilizados pueden ser recolectados. 2. Arrays unidimensionales Un array unidimensional es una lista de variables relacionadas. Tales listas son comunes en la programacién, Por ‘ejemplo, puede usar un array unidimensional para almacenar los ntimeros de cuenta de los usuarios activos en una red. Otro array podria usarse para almacenar los promedios de bateo actuales para un equipo de béisbol. La forma general de declarar un arreglo unidimensional es: ‘tipo nombre-arrayl]; ‘tipo [] nonbre-array; Politica de Privacidad & Cookies hitps:favadesdecero.es/arraysiunidimensionales-multcimensionales/ an sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero La declaracién de un array tiene dos componentes: el tipo y el nombre. + tipo declara el tipo de elemento del array. El tipo de elemento determina el tipo de datos de cada elemento que comprende la matriz. Al igual que la matriz de tipo int, también podemos crear una matriz de otros tipos de datos primitivos como char, float, double..etc 0 tipo de datos definido por el usuario (objetos de una clase). Porlo tanto, el tipo de elemento para la matriz determina el tipo de datos (https:/javadesdecero.es/basico/tipos-datos-java-ejemplos/) que la matriz contendra, J/ anbas son declaraciones vélidas int intarray! int{] intarray; /[Tipo de datos primitivos byte byteArray[]; short shortArray[]; boolean booleanarray( 3 long longArrayl]: float floatarray(]; double doubleArray[ }; char chararray[]; /[Tipos de datos definidos por el usuario // una serie de referencias a objetos de // la clase MyClass (una clase creada por // el usuario) MyClass myClassArray[]; object[] a0, // array de object Collection{] ca; // array de Collection ‘Aunque la primera declaracion anterior establece el hecho de que infArray es una variable de matriz, en realidad no existe una matriz. Simplemente le dice al compilador que esta variable (intArray) contendré una matriz del tipo ‘entero. Para vincular intArray con una matriz fisica real de enteros, debe asignar una usando new y asignarlo a intArray, Ya veremos. 2.1. Instanciando un array en Java Cuando un array se declara, solo se crea una referencia del array. Para realmente crear o dar memoria al array (a partir de aqui solo mencionaré a array, y no matriz 0 arreglo), puede crear un array de la siguiente manera: nombre-array = new tipo ; + tipo especifica el tipo de datos que se asignara + tamafio especifica el numero de elementos en el array + pombre-array es el nombre de la variable del array vinculado al mismo. + Es decir, para usar new para asignar un array, debe especificar el tipo y la cantidad de elementos a asignar. Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ an7 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero int intarray(); //declarando un array intArray = new int; // asignando memoria al array int{] intarray = new ints // combinando anbas declaraciones en una Nota: + Los elementos en la matriz asignada por new se inicializaran automaticamente a cero (para tipos numéricos), false (para booleano) o null (para tipos de referencia). + Obtener un array es un proceso de dos pasos. Primero, debe declarar una variable del tipo de array deseado. En segundo lugar, debe asignar la memoria que mantendré el array, usar new y asignarla a la variable del array. Por lo tanto, en Java, todos los arrays se asignan di 2.2. Array Literal En una situacién en la que ya se conoce el tamafio y los elementos del array, se pueden usar literales del array. int[] intarray = new int[]( 1,2,3,4,5,6,7,8,9,18 }5 // Declarando un array literal + La longitud de este array determina la longitud del array creado, + No es necesario escribir new int[] en las iltimas versiones de Java 2.3. Accediendo a los elementos del Array usando el bucle for Accada elemento del array se accede a través de su indice. El indice comienza con 0 y termina en (tamafio total del array) -1. Se puede acceder a todos los elementos de la matriz usando el bucle for en Java (https:tiwww javadesdecero.es/bucle-for-java-puntos-importantes). /Jacceder a los elenentos del array for (int i= @; 4 < arr.length; i+) Systen.out.println(*Elemento en el indice "+4 +": “+ arr); Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ an7 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero // Prograna Java para ilustrar 1a creacién de un array de enteros, /1 coloca algunos valores en la matriz, e imprine cada valor class Denoarray € public static void main (String[] args) { 11 declara un array de enteros int] ares // asignando menoria para $ enteros. arr = new int[5]3 // inicializa el primer elemento del array arr[@] = 163 // imicializa el segundo elemento del array arr[1] = 285 IT y asi. arr[2] = 305 arr[3] = 40; arr[4] = 583 JI accediendo a los elementos del array for (int i = @; i < arr.length; i++) System.out.printIn(*Elemento en el indice "Me arr[i])s Salida: Elemento en el indice Elemento en el indice Elemento en el indice Elemento en el indice Elenento en el indice Nota: También puede acceder a los arrays de Java utilizando el bucle for-each x (https:ijavadesdecero.es/basico/bucle-for-each-javal) 2.4. Arrays de objetos Se crea una matriz de objetos como una matriz de elementos de datos de tipo primitivo de la siguiente manera Student[] arr = new Student; //student es una clase definida por el usuario El array Student contiene siete espacios de memoria, cada uno del tamafio de la clase Student, en los que se puede almacenar la direccién de siete objetos de Student. Los objetos de Student deben crearse con el constructor (https:ijavadesdecero.es/poo/constructores-ejemplos/) de la clase Student. Ejemplo: Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ 57 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero // Prograna Java para ilustrar 1a creacién de 11 un are class sty € publ. publ: ray de objetos udent ic int rolL_no; ic String name; Student(int roll_no, String name) « I Los © public c! { publ { Salida. Elemento Elenento Elenento Elemento Elenento this-roll_no = roll_no; this.name = names ‘lementos del array son objetos de la clase Student lass DenoArray2 stie void main (String[] ares) // declara una array de enteros. Student[] ares // asigna menoria para 5 objetos del tipo Student. arr = new Student[S]; JI inicializa el primer elemento del array arr[@] = new Student (1, uno"); JI inicializa el segundo elemento del array arr[1) = new Student(2,"dos"); ID y ast. arr[2] = new Student (3, arr[3] = new Student (4, arr[4] = new Student (5,” /1 accediendo a los elementos del array for (int i= @; i < arr.length; i++) System.out.printin(“Elemento en" + i + + arr[i].rell_no +" "+ arp[i].name); en @ : 1 uno en 1: 2 dos en 2: 3 tres en 3: 4 cuatro en 4 : 5 cinco {Qué sucede si tratamos de acceder al elemento fuera del tamajio del array? El compilador arroja ArrayindexOutOfBoundsException para indicar que se ha accedido al array con un indice itegal. Et in dice es negativo, mayor o igual que el tamario del array. Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ sn7 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero 3. Arrays multidimensionales Las matrices multidimensionales son matrices de matrices o arrays de arrays, donde cada elemento del array contiene la referencia de otro array. Se crea una matriz multidimensional al agregar un conjunto de corchetes ((]) por dimension. Ejemplos: int{][] intarray = new int; //un array 20 0 matrix AmtC]J[] intarray = new ints //una array 30 Ejomplo: class multiDimensional « public static void main(String args{]) { // declarar e inicializar array 20 int are{][] = { {2,7,9},(3,6,1),47,4,2) } V1 imprimir array 20 for (int i=0; ic 3 5 i++) { for (int j-@3 J < 35 Je) system.out.print(arr[i][J] +" ")s sSystem.out.printin(); y } y Salida: 279 362 742 3.1. Pasar arrays a métodos Aligual que las variables, también podemos pasar arrays a los métodos. Por ejemplo, en el programa siguiente se pasa un array al método sum para caleular la suma de los valores del array Ejemplo: Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ TAT sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero 11 Prograna Java para derostrar // el uso de array como pardmetro class Test € /1 Método principal public static void main(String args{]) t int arr[] = (3, 1, 2, 5, 45 // pasar array al método sum sun(are); public static void sun(int[] arr) { // obtener suma de valores del array int sun for (Int 1 = @; 4 < arr.length; i++) surs=arr[i]; System.out.printin("suna de valores del array: ? x Salida: Suna de valores del array: 15 3.2. Retornando arrays de métodos Como de costumbre, un método también puede devolver un array. Por ejemplo, en el siguiente programa se devuelve (return) un array desde el método m1 Ejomplos: hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ + sum); Politica de Privacidad & Cookies Bn7 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero 11 Prograna Java para derostrar // el retorno del array de un método class Test € /1 Método principal public static void main(String args{]) t int arr[] = 105 for (int i = @; i < arr.length system.out print (arr[i] ist) public static int[] m1() { J/ vetornando array return new int{](1,2,3}; y Salida: 123 3.3. Objectos Class para arrays Cada array tiene un objeto Class asociado (https://docs.oracle.comijavase/specs/jis/se7/htmljs-10.htmtijs-10.8), compartido con todos los demas arrays con el mismo tipo de componente. Ejemplo: // Prograna Java para derostrar // Objetos de clase para arrays class Test { public static void main(String args{]) « int intArray{] = new int(3]; ayte byteArray[] = new byte[3]; short shortsArray[] = new short[3]; /1 array de strings String[] strarray = new Stringl3]; systen.out.printin(intarray.getClass()); systen.out.println(intarray.getClass() .getSuperclass()); Systen.out.printin(bytearray. getClass()); systen.out.printin(shortsArray.getClass()); Systen.out.printin(strarray.getclass()); Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ on7 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero Salida: class [= new in’ tabla tabla = new int tabla = new int new int ‘Aunque no hay ninguna ventaja en la asignacién individual de los arrays de segunda dimensién en esta situacién, Puede haber otras. Por ejemplo, cuando asigna por separado, no necesita asignar la misma cantidad de ‘elementos para cada indice. Como las matrices multidimensionales se implementan como arrays de arrays, la longitud de cada array esta bajo su control. Por ejemplo, suponga que esta escribiendo un programa que almacena el niimero de cursos en una universidad. ‘Suponga que existen 10 cursos al dia durante la semana y dos cursos al dia los sabados y domingos, puede usar el array Cursos que se muestra en el siguiente programa para almacenar la informacién, Observe que la longitud de la segunda dimensién para los primeros cinco indices es 10 ylalongitudde la X ‘segunda dimensién para los dos limos indices es 2 Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ 107 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero // Asignar manualmente diferentes tanafios a arrays de dimensién dos class DenoarrayIrregular { public static void main(steing args{]) { int cursos{ ]{J=new int{7][]3 cursos[@] = new int[1]3 ctraoala} © nee et{s0h, cursos[2] = new int[10]; cursos[3] = new int[20]; cursos[4] = new int[10]; cursos[5] = new int[2]; cursos[6] = new int[2]; int i,35 For(1=031¢5314+) for (j=055<1055++) cursos(4] [J]=3+13 for (195; 1¢73i++) for (}=055<235++) cursos(i] []=3+13 System.out.printIn(“Entre Semana"); system.out.printIn(" ="); For(i=@31c5314+) System.out.print("Dia "+(i+1)+"° for (j= 0; j < 10; j++) System.out.print(cursos(i][J] + System.out.printIn(); y system.out.println("\nFin de Semana”); System.out.print1n(" for (is5; ic7sitt) ( system.out.print("Dia "s(i+1)+"° for (J=8 5 5<2 5 S++) system.out.print(cursos(i][3] + system.out.printIn(); hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ Politica de Privacidad & Cookies wmn7 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero Entre Semana bia 1%: 12345678910 bia 2°: 12345678910 Dia 3°: 12345678910 Dia 4°: 12345678910 bia 5°: 12345678910 Fin de Senana bia 6° Dia 79:12 El uso de matrices multidimensionales irregulares (0 desiguales) no se recomienda para la mayoria de las. aplicaciones, ya que funciona de manera contraria a lo que la gente espera encontrar cuando se encuentra una matriz multidimensional. Sin embargo, las matrices irregulares se pueden usar eficazmente en algunas situaciones. Por ejemplo, si necesita una matriz bidimensional muy grande que esta escasamente poblada (es decir, una X en la que no se usaran todos los elementos), una matriz irregular podria ser una solucién perfecta, 5. Asignacion de referencias en Arrays Aligual que con otros objetos, cuando asigna una variable de referencia de un array a otra, simplemente esta cambiando a qué objeto se refiere dicha variable. No esta causando qu lice una copia del array, ni hace que el contenido de un array se copie en la otra. Por ejemplo, considers este programa: Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ snr sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero // Asignacién de variables de referencias en array class Asignacionarray { public static void main(steing args{]) { int 45 int numi[] = new int[10]; int nura[] = new int(1@]; 3 iss) in) system.out.print(*numl: ")5 for (10; icto ; i++) System.out.print(numi[i] + system.out.printIn(); System.out.print("num2: "); for (190; icto ; i++) System.out.print (num2[i] System.out.printin(); nun2=nund; System.out.print("aun2 después de la asignacién for (10; 110 ; i++) System.out.print(num2[i] +" "); system.out.printin() ; /Jahora opera el array muni a través de nun? num2(3]=995 System.out.print("num1 después de canbiar valor a través de num2: "); for (10; ic10 ; i++) system.out.print(numi[1] + System.out.println(); y d Salida: numl: @123456789 und: @ -1 -2 -3 -4-5 -6 -7 -@ -9 num? después de la asignacién: @123456789 numi después de cambiar valor a través de nun2: @1299456789 Como muestra en el resultado, después de la asignacién de nums’ a nums2, ambas variables de referencia del array se refieren al mismo objeto. 6. Clonacién de arrays Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ 1307 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero Cuando clona un array dimensional ‘inico, como Object{}, se realiza una «copia profunda» con el nuevo array que contiene copias de los elementos del array original en lugar de referencias. jemplo: 11 Prograna Java para derostrar /1 clonacién de arrays unidimensionales class Test { public static void main(String args{]) « int intArray(] = (1,2,3}3 int clonearray[] = intarray.clone(); // imprimira false a medida que se crea una copia profunda // para un array unidimensional System.out.printin(intarray == clonearray); for (int 4 = @; 4 < clonearray. length; i++) { System.out.print(clonearray[il+" "); Salida’ false 123 Sin embargo, un clon de una matriz multidimensional (como Object [][]) ¢s una «copia superficial», lo que quiere decir que crea solo un nuevo array con cada array de elementos como referencia a un array de elementos original, pero los subcampos se comparten, Ejemplo: Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ san7 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero 11 Prograna Java para demostrar /1 clonacién de matrices aultidimensionales class Test c public static void main(String args]) ‘ int intarray[][] = (1,2,3},{4,5)5 int clonearray[}[] = intarray.clone(); 11 inpriniea false systen.out.printIn(intarray == cloneArray); // se imprimiré true a medida que se crea una copia poco profunda 11 es decir, sub-arrays son conpartidos systen.out.println(intarray[@] == clonesrray[@})3 systen.out.printIn(intarray[1] == clonearray[1])3 ) Salida false true true 7. Uso de length en Arrays Debido a que los arreglos se implementan como objetos, cada array tiene asociado una variable de instancia de longitud (length) que contiene la cantidad de elementos que el array puede contener. (En otras palabras, length contiene el tamafio del array.) Aqui hay un programa que demuestra esta propiedad: Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ 187 sora 1741 ‘Arrays en Java (Con ejemplos) | Java desde Cero 1 Denostrando el uso de length en Arrays class Denoarray { public static void main(String args{]) { int Lista[]= new int [10]; int num{ ]={1,2,3)3 int tabla[][]=¢ 2,23}, 14,5), {6,7,8,9) System.out.printIn("Longitud de lista: "sista. length); system.out.printIn(“Longitud de num: " snum. length); System.out.printIn(“Longitud de tabla: “+tabla. length); System.out.println("Longitud de tabla[@]: " +tabla[@).length); System.out.printIn("Longitud de tabla[1]: " +tabla[a].length); System.out.println(“Longitud de tabla[2]: " +tabla[2].length); //usando length para inicializar lista for (int i=; i < lista.length; i++) Lista[i]=i"i5 System.out.print("La lista es: "); J/Ahora usanos length para mostrar lista for (int i=; 1 < Lista.length; i++) System.out.print(lista[i]+ " "); System.out.printin(); Salida: Longitud de lista: 10 Longitud de num: 3 Longitud de tabl; Longitud La lista es: @149 16 25 36 49 64 a1 Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ 1687 sora 1741 ‘rays en Java (Con ejemplos) | Java desde Cero w F (https://www.pixfuture.com/advertis ORACLE + intel ido3482935214) Compartir f WY in © Pilgolgal futuro del almacenamiento de datos en la nube Oracle Autonomous Data Warehouse © Java, 2021. Todos los derechos reservados. Java desde Coro (hitps:/www.google.es/ur!? sa=i8ret=j&q=aprender%420%java%20%desde%20%cero&esrc=s&url=https%3A%2F %2Fwww.javadesdecero.es%2F) | Términos y Condiciones (https:/avadesdecero.es/terminos-y-condiciones-uso/) Politica de Privacidad & Cookies hitps:lfavadesdecero.es/arraysluniimensionales-multcimersionales/ m7

También podría gustarte