Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 7
Estructuras de Datos
Les damos la bienvenida
Vamos a comenzar a grabar la clase
Clase 07 Clase 08
ArrayList es una colección donde cada objeto puede ser ubicado por su índice. Como ya sabemos, en
Java, el índice en una colección empieza de cero. ArrayList son muy comunes porque, al contrario del tipo
array, no tienen un tamaño definido. Su tamaño es flexible.
import java.util.ArrayList;
import java.util.List;
Ejemplo ArrayList
public class ArrayListEjemploMain {
Después de crear la variable nombres de tipo List<String> e iniciarla con ArrayList<String>, le agregamos los elementos
“Lucho”, “Pepito” y “Jaimito”. Lucho tiene el índice cero porque es el primero. Pepito tiene el índice uno porque es
segundo. Jaimito tiene el índice dos porque es tercero. Recuerden que en Java el índice siempre empieza por cero.
Como se habrán dado cuenta para agregar elementos usamos el método “add”. Recuerden siempre añadir elementos
con el mismo tipo que definieron su lista (colección).
Luego, simplemente llamamos al método “mostrarNombres” que recibe una lista para mostrar en la consola. El método
no tiene nada en especial. Solo tiene un enhanced for loop que muestra cada nombre.
Después, usamos el método “remove” que acepta un número de índice que representa el elemento a remover. Este
método no solo remueve el elemento sino que también lo retorna. De esa manera puedes guardar el elemento removido
en una variable y usarla a tu antojo. Seguidamente, volvemos a mostrar el contenido de la lista nombres.
Por último, usamos el método “clear” que borra todos los elementos de la lista. Este método no retorna nada. Así que
cuidado con usarlo y pensar que va retornar los elementos borrados. Esos fueron algunos métodos de ArrayList.
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
ArrayList LinkedList
Buscar un elemento es más rápido en ArrayList Buscar un elemento es más lento en LinkedList
Insertar un elemento es más lento en ArrayList Insertar un elemento es más rápido en LinkedList
Como ya sabemos ArrayList está basado en índices. Pero cómo es eso de que LinkedList está basado en nudos.
LinkedList está basado en nudos o nodos que no necesitan índices pero que si necesitan saber quién es su vecino.
¿Cómo es eso de vecino? Al decir vecino, nos referimos que un LinkedList nudo necesita saber que nudo está adelante y
que nudo está detrás de él. Así es como los elementos de LinkedList saben quién es primero y quién es último. Al usar
esta manera de ubicación, es más fácil insertar elementos. Es más fácil porque al insertar elementos no necesitas cambiar
el índice a nadie. Solo necesitas agregar el elemento al último o al comienzo o en un lugar específico. En cambio en
ArrayList si insertas un elemento, tienes que modificar el índice a todos los demás elementos.
Pros y contras y cuándo utilizar unos antes que otros
En resumen, cada estructura de datos en Java tiene sus pros y contras. Las listas son muy flexibles y permiten el acceso rápido a
elementos individuales, pero las listas vinculadas pueden ser menos eficientes que los arreglos en el acceso a elementos individuales.
Los mapas permiten la recuperación rápida de valores asociados con una clave, pero no mantienen el orden de los elementos en el que
se agregaron. Los conjuntos son muy eficientes en la eliminación y búsqueda de elementos, pero no mantienen el orden de los
elementos en el que se agregaron y no son eficientes en el acceso a elementos individuales.
En cuanto a cuándo utilizar unos antes que otros, todo depende del caso de uso específico y de los requisitos de la aplicación. A
continuación se presentan algunas recomendaciones generales:
● Utilice una lista cuando necesite almacenar una colección de elementos ordenados y necesite acceso rápido a elementos
individuales.
● Utilice un mapa cuando necesite recuperar valores asociados con una clave y no le importe el orden en el que se agregaron los
elementos.
● Utilice un conjunto cuando necesite almacenar una colección de elementos únicos y necesite una eliminación o búsqueda
eficiente de elementos.
ASOCIACIÓN, COMPOSICIÓN Y AGREGACIÓN EN JAVA
ASOCIACIÓN
La asociación es la relación entre dos clases separadas que se establece a través de sus Objetos. La
asociación puede ser de uno a uno, de uno a varios, de varios a uno, de varios a varios.
En la programación orientada a objetos, un objeto se comunica con otro objeto para utilizar la
funcionalidad y los servicios proporcionados por ese objeto. La composición y la agregación son las dos
formas de asociación.
En Java se pueden crear arrays irregulares en los que el número de elementos de cada fila es variable.
Solo es obligatorio indicar el número de filas.
Por ejemplo:
int [][] m = new int[3][];
crea una matriz m de 3 filas.