buscador

Visita

Mostrando las entradas con la etiqueta Creaci贸n de arrays unidimensionales. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Creaci贸n de arrays unidimensionales. Mostrar todas las entradas

lunes, 11 de julio de 2016

馃搷Actividad 10: 馃懆‍馃捇 Creaci贸n y uso de matrices (arrays) en Java ☕️

Bienvenido al Blog, en esta oportunidad desarrollaremos un tema Te贸rico Practico sobre programaci贸n orientado a objetos, para entender sobre c贸mo desarrollar un sistema con el lenguaje java veremos acerca de  Creaci贸n 馃懆‍馃捇  y uso de matrices  en ☕️ Java.

 Sobre el contenido …

  •     El contenido de este blog tiene como fuente el curso Fundamentos de programaci贸n de Oracle.
  •      Con algunos agregados del autor "EL INFORMATICO IBERO"馃懛
Indice :

  • Creaci贸n de arrays unidimensionales
  • Establecimiento de valores de arrays utilizando el atributo length y un bucle
  • Uso del array args en el m茅todo main
  • Descripci贸n de los arrays bidimensionales

Creaci贸n de arrays unidimensionales

Imagine un programa en el que almacene las edades de 10 personas. Podr铆a crear variables diferentes para guardar cada uno de los 10 valores. Por ejemplo:

¿Pero, qu茅 pasar铆a si tuviese que almacenar 1000 o 10000 edades? A medida que crece el n煤mero de valores, el programa se vuelve m谩s y m谩s dif铆cil de manejar.

El lenguaje Java permite agrupar m煤ltiples valores del mismo tipo (listas) utilizando arrays unidimensionales. Los arrays son 煤tiles cuando se dispone de varios datos relacionados (como las edades de diferentes personas) pero no se quieren crear variables distintas para guardar cada dato.

En la figura siguiente se ilustran varios arrays unidimensionales.


Es posible crear un array de tipos primitivos, como int, o un array de referencias a tipos de objetos, como Shirt.

Cada parte del array es un elemento. Si declara un array de 100 tipos int, habr谩 100 elementos.

Puede acceder a cada elemento concreto utilizando su ubicaci贸n o 铆ndice dentro del array.

Declaraci贸n de un array unidimensional

Los arrays se controlan mediante un objeto Array impl铆cito (que no est谩 disponible en el API de Java, pero est谩 disponible en su c贸digo).

Como en el caso de cualquier otro objeto, debe:

  • Declarar una referencia al array
  • Instanciar un objeto Array
  • Inicializar ese objeto para poder utilizarlo.

La sintaxis utilizada para declarar matrices unidimensionales es como sigue:

Donde:

  • tipo representa el tipo de dato primitivo o el tipo de objeto correspondiente a los valores almacenados en el array.
  • Los corchetes, [], indican al compilador que se est谩 declarando un array.
  • nombreArray es el nombre asignado al array.

Los corchetes de apertura y cierre tambi茅n pueden aparecer despu茅s del identificador o nombre del array.

Utilice el c贸digo siguiente para declarar un array de valores char llamado status y un array de valores int llamado ages.

Utilice el c贸digo siguiente para declarar un array de referencias a Shirt llamado shirts y un array de referencias a String llamado names.

Cuando declara un array, el compilador y la m谩quina virtual de Java (JVM) no saben qu茅 longitud tendr谩 porque ha declarado variables de referencia que en ese momento no se帽alan a ning煤n objeto.

Instanciaci贸n de un array unidimensional

Para poder inicializar un array, es preciso instanciar un objeto Array lo suficientemente grande como para dar cabida a todos los valores del array.

Un array se instancia definiendo el n煤mero de elementos que contiene. La sintaxis para instanciar objetos Array es como sigue:

Donde:

  • nombreArray es el nombre asignado al array.
  • tipo representa el tipo de dato primitivo o el tipo de objeto correspondiente a los valores almacenados en el array.
  • longitud representa el tama帽o (n煤mero de elementos) del array.

Utilice el c贸digo siguiente para instanciar un array de valores char llamado status y un array de valores int llamado ages.

Utilice el c贸digo siguiente para instanciar un objeto Array llamado names que contiene referencias a String y un array de referencias al objeto Shirt llamado shirts.

Cuando se instancia un objeto Array cada elemento primitivo se inicializa con el valor cero correspondiente al tipo especificado.

En el caso del array de tipo char llamado status, cada elemento se inicializa con el valor \u0000 (el car谩cter vac铆o del juego de caracteres Unicode).

En el caso del array int llamado ages, el valor inicial de cada elemento es el valor entero 0.

En cuanto a los arrays names y shirt, las referencias al objeto se inicializan con null.

Los arrays de un determinado tipo de objeto pueden contener referencias de objeto.

Inicializaci贸n de un array unidimensional

Es posible escribir el contenido de un array despu茅s de crear el array.  La sintaxis para definir los valores de un array es:

Donde:

  • nombreArray es el nombre asignado al array.
  • 铆ndice representa el lugar del array donde se situar谩 el valor.
  • valor es el valor que se asigna al 铆ndice en el array.

El primer elemento de un array se sit煤a en el 铆ndice o posici贸n 0 y el 煤ltimo elemento se sit煤a en el lugar correspondiente al valor de longitud menos 1. Por tanto, el 煤ltimo elemento de un array de seis elementos es el 铆ndice 5.

Utilice el c贸digo siguiente para establecer los valores del array ages:

Utilice el c贸digo siguiente para establecer los valores del array shirts:

La palabra clave new se utiliza para crear los objetos Shirt y situar las referencias a dichos objetos en cada posici贸n del array.

Declaraci贸n, instanciaci贸n e inicializaci贸n de arrays Unidimensionales

Si conoce los valores que va a incluir en el array en el momento de declararlo, puede declarar, instanciar y definir los valores del objeto Array en la misma l铆nea de c贸digo. La sintaxis de esta declaraci贸n, instanciaci贸n e inicializaci贸n combinada de valores es como sigue:

Donde:

  • tipo representa el tipo de dato primitivo o el tipo de objeto correspondiente a los valores almacenados en el array.
  • Los corchetes, [], indican al compilador que se est谩 declarando un array.
  • nombreArray es el nombre asignado al array.
  • {lista de valores o expresiones separados por coma} representa una lista de valores que se van a almacenar en el array o una lista de expresiones cuyos resultados se almacenar谩n en el array.

La sentencia siguiente combina los anteriores ejemplos de declaraci贸n, instanciaci贸n e inicializaci贸n del array ages:

Tambi茅n se pueden establecer valores para cada objeto (con una referencia que se almacena en un array) utilizando el constructor de cada objeto. La sentencia siguiente combina el anterior ejemplo de declaraci贸n, instanciaci贸n e inicializaci贸n del array shirt:

No es posible declarar e inicializar un array en l铆neas diferentes utilizando la lista de valores separados por coma. El c贸digo siguiente devolver铆a un error:

Acceso a un valor dentro de un Array

El acceso a cada elemento de un array se realiza a trav茅s de su 铆ndice. Para acceder a un valor del array, indique el nombre del array y el n煤mero de 铆ndice del elemento (entre corchetes []) a la derecha de un operador de asignaci贸n.

En el siguiente ejemplo de c贸digo se muestra c贸mo establecer el valor de un determinado 铆ndice del array:

En el ejemplo siguiente se muestra c贸mo recuperar valores de un determinado 铆ndice del array:

Almacenamiento de arrays unidimensionales en la memoria

Los arrays son objetos a los que hace referencia una variable de referencia a objetos.

En la figura siguiente se ilustra la forma en que se almacena en la memoria un array de tipos de datos primitivos frente a la forma en que se almacena un tipo primitivo.


La l铆nea de c贸digo de la figura aparecer铆a en alg煤n m茅todo como, por ejemplo, main.

El valor de la variable size (un tipo primitivo char) es L. El valor de sizes[] es 0x334009 y se帽ala a un objeto del tipo “array de valores char” compuesto de tres valores. El valor de sizes[0] es char S, el valor de sizes[1] es char M y el valor de sizes[2] es char L.

Almacenamiento de variables de referencia y arrays de referencias en la memoria

En la figura siguiente se muestra c贸mo se guarda un array de referencias en la memoria.

El valor de la referencia al objeto myShirt es x99f311, que es una direcci贸n que se帽ala a un objeto de tipo Shirt con los valores 0, 0.0 y U.

El valor de la referencia al objeto shirts[] es x179009, una direcci贸n que se帽ala a un objeto de tipo “array de referencias a objetos Shirt” formado por tres referencias a objetos:

  • El valor del 铆ndice shirts[0] es 0x00099, es decir, una referencia que se帽ala a un objeto de tipo Shirt con los valores 0, 0 y U.
  • El valor del 铆ndice shirts[1] es 0x00327, es decir, una referencia que se帽ala a un objeto de tipo Shirt con los valores 0, 0 y U.
  • El valor del 铆ndice shirts[2] es 0x00990, es decir, una referencia que se帽ala a un objeto de tipo Shirt con los valores 0, 0 y U.

Establecimiento de valores de arrays utilizando el atributo length y un bucle

Establecer los valores de los arrays es una tarea tediosa porque es preciso escribir una l铆nea de c贸digo para definir cada elemento del array.

Sin embargo, es posible usar un bucle para ir recorriendo cada elemento del array y establecer los distintos valores.

Atributo length

Todos los objetos Array tienen una variable de atributo llamada length que contiene la longitud del array.

La longitud se conoce tambi茅n como los l铆mites del array. Los l铆mites de un array como ages[10] van de ages[0] a ages[9] porque todos los arrays empiezan con el elemento cero (0).

El n煤mero de elementos de un array se almacenan como parte del objeto array. El software de la m谩quina virtual de Java utiliza la longitud para asegurarse de que cada acceso al array se  corresponda con un elemento actual del array.

Si se produce un intento de acceder a un elemento que no existe, por ejemplo, especificando en el c贸digo un valor ages[21] para un array ages que tiene longitud [10], se producir谩 un error.

Establecimiento de los valores del array utilizando un Bucle

Es posible usar el atributo length de la clase Array en la parte condicional de un bucle para iterar en un array. En el ejemplo siguiente se ilustra la forma de iterar a lo largo de un array utilizando un bucle.

Ejejmplo:



En este ejemplo, cada 铆ndice de myArray se llena con un valor equivalente al n煤mero de 铆ndice (count). Por ejemplo, myArray[10] es 10, myArray[99] es 99 y as铆 sucesivamente.

Bucle while mejorado

Existe otra forma de la sentencia “for” dise帽ada para iterar en los arrays. A veces esta forma se conoce como sentencia for mejorada y puede utilizarse para hacer los bucles m谩s compactos y f谩ciles de leer. Observe el array siguiente, que est谩 formado por una serie de n煤meros:

El programa siguiente utiliza la sentencia for mejorada para ir recorriendo el array incluido en el bucle y mostrar la suma de los n煤meros que contiene.

Se recomienda usar esta forma de sentencia for siempre que sea posible.

Uso del array args en el m茅todo main

Ya hemos visto un ejemplo de uso de un array como argumento del m茅todo main. El array args acepta un n煤mero indeterminado de objetos String:

Cuando se pasan secuencias o cadenas de caracteres a un programa desde la l铆nea de comandos, esas secuencias se escriben en el array args. Para utilizarlas, es preciso extraerlas del array args y, opcionalmente, convertirlas en el tipo de dato apropiado.

El siguiente ejemplo de c贸digo ilustra el paso de secuencias de caracteres al m茅todo main de un programa.

La clase ArgsTest extrae dos argumentos String pasados desde la l铆nea de comandos y los muestra en la pantalla.

Sus programas deber铆an mostrar una lista de argumentos v谩lidos a cualquier usuario que los utilice. La mayor铆a de los programas utilizados desde la l铆nea de comandos presenta una lista de argumentos aceptados si:

  • Se introduce el nombre del programa sin ning煤n argumento.
  • Se introduce el nombre del programa con un argumento no v谩lido.
  • Se introduce expl铆citamente un argumento que indique al programa que debe mostrar una lista de argumentos aceptados (tal como la -h de ayuda).

Conversi贸n de argumentos String en otros tipos

El m茅todo main trata todo lo que se escribe como una secuencia literal.  Si quiere utilizar la representaci贸n literal de un n煤mero en una expresi贸n, debe convertir la secuencia en el valor num茅rico equivalente. Cada tipo de dato tiene una clase asociada que contiene m茅todos utilitarios static para convertir las secuencias literales en ese tipo de dato (clase Integer para int, clase Byte para byte, clase Long para long y as铆 sucesivamente).

Por ejemplo, para convertir el primer argumento pasado al m茅todo main en un tipo int:

Funci贸n varargs

La funci贸n varargs (argumentos variables) permite crear un m茅todo que pueda aceptar un n煤mero variable de argumentos. Imagine el ejemplo siguiente:

En primer lugar, el argumento lista del m茅todo mostrarMensajes est谩 definido como un tipo String... La declaraci贸n del par谩metro contiene puntos suspensivos. Esto indica al compilador que el c贸digo de llamada puede pasar un n煤mero variable de par谩metros String. De esta forma, es posible compilar y ejecutar el programa anterior, por ejemplo:

En general, un m茅todo puede tener como m谩ximo un par谩metro que sea un argumento variable (vararg), debe ser el 煤ltimo par谩metro recibido por el m茅todo y se expresa mediante el tipo de objeto, los puntos suspensivos (... ) y el nombre de la variable.

Descripci贸n de los arrays bidimensionales

Es posible almacenar tambi茅n matrices de datos utilizando arrays multidimensionales (arrays de arrays). Un array bidimensional (un array de arrays) es parecido a una hoja de c谩lculo con m煤ltiples columnas (cada columna representa un array o una lista de elementos) y m煤ltiples filas.

En la figura siguiente se ilustra un array bidimensional.

Declaraci贸n de un array bidimensional

Los arrays bidimensionales necesitan un segundo par de corchetes en la declaraci贸n. Por lo dem谩s, el proceso de crear y usar arrays bidimensionales es similar al de los arrays unidimensionales. La sintaxis para declarar un array bidimensional es como sigue:

Donde:

  • tipo representa el tipo de dato primitivo o el tipo de objeto correspondiente a los valores almacenados en el array.
  • Los corchetes, [] [], indican al compilador que se est谩 declarando un array bidimensional
  • nombreArray es el nombre asignado al array durante la declaraci贸n.

En el ejemplo siguiente se declara un array de arrays para conocer las ventas trimestrales durante cinco a帽os.

Instanciaci贸n de un array bidimensional

La sintaxis para instanciar un array bidimensional es como sigue:

Donde:

  • nombreArray es el nombre asignado al array durante la declaraci贸n.
  • n煤mero_de_arrays es el n煤mero de arrays contenidos en el array.
  • longitud es la longitud de cada array dentro del array.

En el ejemplo siguiente se instancia un array de arrays para obtener las ventas trimestrales durante cinco a帽os.

Este array bidimensional crea una matriz como 茅sta:

El array ventasAnuales contiene cinco arrays de tipo int (cinco subarrays). Cada subarray tiene un tama帽o de cuatro elementos y hace el seguimiento de las ventas durante los cuatro trimestres de un a帽o.

Inicializaci贸n de un array bidimensional

Al establecer los valores de un array bidimensional, indique el valor de 铆ndice utilizando un n煤mero para representar la fila seguido de otro n煤mero que represente la columna. He aqu铆 algunos ejemplos de c贸mo establecer los valores del array ventasAnuales:

El ejemplo de c贸digo anterior da lugar a la siguiente matriz o array bidimensional:

Raul Tamani A. ©. Im谩genes del tema de fpm. Con tecnolog铆a de Blogger.

Adblock Detectado

Apoya este sitio desactivando el Adblock para seguir navegando. ¡Gracias!

¡Ya Desactive el Adblock!