ALGORITMOS Y ESTRUCTURAS DE DATOS - IPLACEXcursos.iplacex.cl › CED › AED3008 › S3 ›...
Transcript of ALGORITMOS Y ESTRUCTURAS DE DATOS - IPLACEXcursos.iplacex.cl › CED › AED3008 › S3 ›...
-
[Escribir texto]
ALGORITMOS Y ESTRUCTURAS DE DATOS
UNIDAD Nº II
Estructuras Dinámicas De Almacenamiento De Datos: Arraylist
-
2
www.iplacex.cl
INTRODUCCIÓN
Una vez que conociste los arreglos, profundizaremos ahora en una estructura
similar pero bastante más flexible: Los ArrayList.
Si bien los arreglos, nos resuelven muchos problemas, principalmente el de
manejar grandes volúmenes de datos, tienen algunas falencias.
Cuando desconocemos la cantidad de datos que deberá manejar nuestro arreglo,
es cuando el uso de arreglos se complica.
Imaginemos que vamos a registrar las notas de un curso. La cantidad de alumnos,
en ese caso, es un dato conocido. El uso de un arreglo, sería lo adecuado. Pero
supongamos que lanzaremos una encuesta por redes sociales. No sabemos
cuánta gente la contestará… ¿y si se viraliza? ¿Si esperábamos unos 100
encuestados y terminamos teniendo 1000? ¿Cómo sabríamos, a priori, de qué
tamaño crear el arreglo?
¿O al revés, si esperamos miles de datos y sólo recibimos unas pocas decenas?
Crearíamos un arreglo de un tamaño enorme que finalmente no se utilizaría y
terminaríamos malgastando recursos tanto de memoria como CPU innecesarios.
Tal vez para los programas que realizamos como ejercicios en esta asignatura
pudiera ser irrelevante, pero una aplicación real, en un entorno productivo
concreto, eso sería una gran desastre.
Para ahorrarse todos estos problemas es que existen los ArrayList, estructuras de
datos parecidas a u arreglo, pero con comportamiento dinámico.
SEMANA 3
-
3
www.iplacex.cl
IDEAS FUERZA
• Ventajas y desventajas de los arreglos: La principal característica de un
arreglo es la de poder guardar muchos valores. Esto representa la principal
ventaja de los arreglos por sobre las variables.
• Ventajas y desventajas de los ArrayList: Los ArrayList, dada su
flexibilidad, son muy ventajosos para su uso.
• Características de los ArrayList: Es una estructura de datos semejante a
un arreglo. Posee un tamaño dinámico. Vale decir, ascenderá en
correspondencia con la cuantía de datos que se le integren y reducirá de
dimensión cuando se le excluyan datos.
-
4
www.iplacex.cl
Desarrollo
Ventajas y desventajas de los arreglos
En las semanas anteriores trabajaste con arreglos y conociste su sintaxis. De lo
aprendido se puede deducir que la principal característica de un arreglo es la de
poder guardar muchos valores. Esto representa la principal ventaja de los arreglos
por sobre las variables.
En relación a la cantidad de valores o elementos que se pueden guardar en un
arreglo, esta debe ser predefinida y esa es tal vez la principal desventaja de los
arreglos, que su tamaño es estático.
Se debe evaluar siempre muy bien el problema a resolver para decidir si el uso de
arreglos es una solución óptima o si significará un problema.
Ventajas y desventajas de los ArrayList
Comparativamente con los arreglos, los ArrayList parecen ser una mejor solución
dada su flexibilidad, esa sería su principal ventaja.
Pero no todos los problemas requieren una misma solución, veamos a
continuación la explicación detallada de los ArrayList para que puedas sacar tus
propias conclusiones respecto de cuál es mejor.
Características de los ArrayList
-
5
www.iplacex.cl
Un ArrayList es una estructura de datos muy parecida a un arreglo. Se diferencia
de éste principalmente por tener un tamaño dinámico. Esto significa que crecerá
en relación con la cantidad de datos que se le ingresen y disminuirá de tamaño
cuando se le eliminen datos.
Su sintaxis es similar a los arreglos, pero con particularidades. A continuación se
explicará el uso de los ArrayList.
¿Qué es un ArrayList?
Un ArrayList es una estructura dinámica de almacenamiento de datos.
• Cada ArrayList se identifica con un nombre.
• Cada casilla del ArrayList se identifica con un índice que comienza en cero.
Diferencia entre Arreglo y ArrayList
La principal diferencia entre Arreglo y ArrayList, es que el Arreglo es una
estructura estática, mientras que el ArrayList es una estructura dinámica.
⚫ Arreglo -> Estructura estática: su tamaño se define al crearlo, y se
mantiene fijo durante la ejecución.
⚫ ArrayList -> Estructura dinámica: no es necesario declararles un tamaño
fijo, pues las casillas se adaptan.
La ventaja del ArrayList es que se pueden crear casillas dinámicamente en tiempo
de ejecución.
-
6
www.iplacex.cl
Cómo acceder a las casillas
Para acceder a cada casilla del ArrayList se coloca el nombre del ArrayList y el
método get. Cada casilla se puede leer o modificar, y es posible realizar
operaciones con los valores que se van obteniendo de las casillas.
Casillas y valor correspondiente:
• A.get(0) = 2
• A.get(1) = 4
• A.get(2) = 6
• A.get(3) = 8
• A.get(4) = 10
Tipos de ArrayList
Un ArrayList es una estructura que puede
tener elementos de distintos tipos de datos.
También se puede establecer un tipo único de
datos en la estructura ArrayList.
Por qué usar ArrayList
-
7
www.iplacex.cl
• Permite guardar en memoria datos ingresados por el usuario que necesiten
ser procesados en forma dinámica.
• Se puede trabajar con varios ArrayList simultáneamente para resolver
requerimientos
• Se pueden crear ArrayList de objetos.
Principales operaciones con ArrayList
Las principales operaciones que se pueden realizarse con ArrayList son:
1.- Agregar elementos al ArrayList
2.- Eliminar elementos del ArrayList
3.- Buscar elementos en el ArrayList
4.- Recorrer el ArrayList
También pueden implementarse operaciones personalizadas y algunas que vienen
por defecto.
1.- Agregar elemento al ArrayList
La operación agregar elemento inserta un dato en el ArrayList seleccionado.
También se puede sobrescribir el valor de una casilla específica utilizando su
índice.
-
8
www.iplacex.cl
2.-Eliminar elemento del ArrayList
La operación eliminar elemento borra una casilla del ArrayList seleccionado.
3. Buscar elemento en el ArrayList
La operación buscar elemento permite
buscar dentro del ArrayList un
elemento especifico. Para implementar
la búsqueda se debe utilizar un ciclo y
un condicional.
En caso de no encontrar el elemento buscado se debe personalizar algún mensaje
que lo indique.
-
9
www.iplacex.cl
4. Recorrer ArrayList
La operación de recorrer ArrayList permite
obtener todos los valores de las casillas del
ArrayList. Al recorrer se pueden aplicar
condicionales para procesar los valores, lo
que además permite llenar el ArrayList y
mostrar sus elementos.
Definición de ArrayList en Java
En este ejemplo definiremos un ArrayList llamado ventas.
Antes de trabajar con ArrayList es necesario importar la librería que permitirá
trabajar con sus métodos
Para luego poder definirlo e inicializarlo. Utilizando la sintaxis de la imagen,
permite almacenar elementos de cualquier tipo de datos.
-
10
www.iplacex.cl
Llenar ArrayList
Para poder interactuar con el usuario, se agrega el import de Scanner.
Se crea un objeto read para poder capturar datos desde la consola.
El ciclo que recorre el ArrayList se define desde i=0 hasta i
-
11
www.iplacex.cl
Recorrer ArrayList e Imprimir Elementos
Nótese que el ciclo que recorre el ArrayList se define desde i=0 hasta i
-
12
www.iplacex.cl
En este caso se elimina el contenido de la cuarta casilla, recuerde que la primera
casilla tiene índice cero.
Buscar elementos en el ArrayList
Para buscar elementos en el ArrayList, definiremos el siguiente método:
Se guarda en la variable monto el valor de búsqueda ingresado por el usuario.
Definimos la variable encontrado seteándola en false; en el caso de que se
encuentre el monto, se cambiará su valor a true.
-
13
www.iplacex.cl
Se realiza un ciclo for que permite recorrer el ArrayList completo y comparar cada
uno de sus elementos con la variable monto, ingresado.
Antes de comparar el elemento del ArrayList, se debe castear a String y luego a
Double, ya que el método get del arraylist siempre retorna un object por defecto.
En el caso de que la variable "encontrado" se mantenga en false, se imprime el
mensaje de que el monto no fue ingresado. En caso de que cambie a true durante
el ciclo, no entra a este condicional.
El símbolo ! dentro del if significa que se está negando la variable encontrado, es
una abreviación para no escribir if (encontrado == false).
-
14
www.iplacex.cl
Creación de un Proyecto
Para ilustrar el uso de ArrayList realizaremos una aplicación que registre los
montos de ventas de una tienda en un período de 12 meses. Se calcularán totales
netos, total IVA y total bruto.
Crearemos un nuevo proyecto en NetBeans, utilizando el lenguaje Java para la
implementación del código.
En el menú de NetBeans, haz clic en File → New Project. En la ventana New
Project se selecciona Java en Categories, y en Projects la opción Java
Application. Luego haz clic en Next.
En la siguiente ventana le damos el nombre EjemploArray al proyecto y
establecemos la ruta donde se guardará.
-
15
www.iplacex.cl
Creación del ArrayList de Ventas.
Para crear nuestro ArrayList de ventas, primero importamos las clases ArrayList y
Scanner a nuestro proyecto. Luego, al interior de la clase Main, declaramos un
objeto del tipo Scanner que permita al usuario interactuar por consola, y definimos
el ArrayList
de ventas.
Ingresar elementos al ArrayList
Programamos el ciclo que permite llenar el ArrayList de ventas desde la consola:
Nótese que en un ciclo de i=0 a i=11, el índice representa los periodos. Un año
tiene 12 periodos que básicamente son los meses del año numerados.
-
16
www.iplacex.cl
Listar elementos del ArrayList
Programamos el ciclo que permite listar el ArrayList de ventas en la consola:
Calcular Total Neto
Programamos el ciclo que permite calcular el total neto de las ventas:
Se utiliza un ciclo que recorre todo el ArrayList y que suma sus valores y los
almacena en la variable totalNeto. Una vez finalizado el ciclo, se imprime el
resultado de la suma.
Calcular Total IVA
Programamos el ciclo que permite calcular el total iva de las ventas:
-
17
www.iplacex.cl
Se utiliza un ciclo que recorre todo el ArrayList y que suma sus valores
multiplicando por 0,19 (IVA 19%) y los almacena en la variable totaIVA. Una vez
finalizado el ciclo se imprime el resultado de la suma.
Calcular Total Bruto
Programamos el ciclo que permite calcular el total bruto de las ventas:
Se utiliza un ciclo que recorre todo el ArrayList y que suma sus valores
multiplicando por 1,19 (Total bruto = total neto + total iva) y los almacena en la
variable total Bruto. Una vez finalizado el ciclo se imprime el resultado de la suma.
-
18
www.iplacex.cl
CONCLUSIONES
De lo aprendido esta semana podemos concluir que el uso de ArrayList presenta
varias ventajas respecto del uso de los arreglos.
La principal ventaja guarda relación con la flexibilidad que presenta esta estructura
de datos, ya que no es necesario conocer por anticipado el volumen de datos que
se guardarán en él. El ArrayList se agranda y achica en la medida que se le
agreguen o quiten datos.
Otra ventaja, es la facilidad de su uso, ya que tiene predefinidas una serie de
funcionalidades. Existen predefinidos los métodos para agregar elementos,
eliminar, buscar, etc.
Finalmente, es importante tener en cuenta, que el principal tipo de problemas para
el que los ArrayList resultan ser eficientes, es para los problemas con volúmenes
indeterminados de datos.
-
19
www.iplacex.cl