Java 16
Java 16
Java 16
Generation/
Curso JAVA (Online-Nacional) 3ªEd.
Java Bootcamp
Eduardo Corral Muñoz
eoi_eduardo@corral.es
Java
Intermedio 1
Índice
_01 Colecciones Java
_02 ArrayList
_03 LinkedList
_04 HashSet
_05 HashMap
_06 Iterator
01
Colecciones Java
Api de colección
Las colecciones en Java son tipos especiales de clases usadas
para manejar grupos de datos (estructuras de datos) del mismo
tipo (i.e colección de strings).
Podemos diferenciar dos grandes tipos: Collection (List y Set) y
Map
List almacena datos/objetos en una secuencia determinada y
admite elementos duplicados.
Set no admite duplicados y no mantiene el orden de sus
elementos.
Map (diccionario) almacena la información en parejas clave/valor.
No hemos de preocuparnos por el tamaño (array), crecen en
automáticamente al agregar elementos.
Api de colección
Diagrama de clases del API de colecciones
Api de colección
Array es un tipo de estructura de datos que contiene un número
fijo de valores de un solo tipo. No es posible modificar sus
dimensiones una vez creado.
ArrayList es la colección de Java que representa la estructura de
datos de Array de longitud variable.
Api de colección
Set es un tipo de estructura de datos que almacena valores
únicos del mismo tipo (sin duplicados).
HashSet es la colección de Java que representa la estructura de
datos Set.
Api de colección
Map es un tipo de estructura de datos utilizada para la búsqueda
rápida de datos. Almacena datos en forma de pares "clave/valor".
HashMap es la colección de Java que representa la estructura de
datos de Map.
02
ArrayList
Array - ArrayList
Una matriz o Array Almacena múltiples valores del mismo tipo en
una sola variable.
Declaración:
tipo[] nombre = {valor1, valor2, valor3, …};
String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
int[] myNum = {10, 20, 30, 40};
Para acceder a un elemento:
nombre[indice]
El primer elemento tiene el índice 0.
Array - ArrayList
Un Array bidimensional es una matriz que contiene uno o más
matrices de su mismo tipo.
Declaración array bidimensional:
tipo[ ][ ] nombre = {{array1}, {array2}, {array3}, …};
int[ ][ ] numeros= {{1,2,3,4},{3,5,7},{2,4,6,8,10}};
Para acceder a un elemento:
nombre[indice1] [indice2]
numeros[1][1] es 5
Array - ArrayList
La clase ArrayList es un array redimensionable.
Pertenece al paquete (package) java.util.
La diferencia principal respecto al array predefinido es que este
no puede ser modificado en su dimensión, mientras que en el
ArrayList se pueden añadir o eliminar elementos a voluntad.
Array - ArrayList
La clase ArrayList es un array redimensionable.
Creación:
import java.util.ArrayList; // importar ArrayList class
ArrayList<String> coches = new ArrayList<String>(); // Crearlo
Métodos:
coches.add(“elemento”);
coches.remove(indice);
coches.get(indice);
coches.set(indice, “elemento”);
coches.clear();
coches.size();
…
Array - ArrayList
Recorrer un ArrayList
for, foreach, while, do..while
utilizando .size() para el final del bucle
LinkedList
LinkedList
Muy similar a ArrayList en cuanto a lo que se puede hacer, pero
funcionan de forma muy diferente.
ArrayList contiene un array estándar. Al añadir un elemento se
pone en ese array y si no es suficientemente grande, se crea uno
mayor y se elimina el antiguo. (Bargueño)
LinkedList almacena los datos en “contenedores”. La lista está
enlazada al primer contenedor, y cada uno de ellos al siguiente.
Para añadir un elemento, se crea un nuevo contenedor que se
enlaza a los otros contenedores de la lista. (Tren).
LinkedList
ArrayList vs. LinkedList
HashSet
HashSet
Es una colección de datos donde cada elemento es único. No
hay repeticiones.
Pertenece al paquete (package) java.util.
Podríamos asimilarlo a una estructura de datos tipo array en la
que no existe la posibilidad de que haya elementos duplicados.
HashSet
Creación:
import java.util.HashSet; // importar LinkedList class
HashSet <String> coches = new HashSet <String>();// Crearlo
Métodos:
coches.add(“elemento”);
coches.remove(“elemento”);
coches.contains(“elemento”);
coches.clear();
coches.size();
…
HashMap
HashMap
Los datos se almacenan en pares “clave/valor” y se puede
acceder a ellos por un índice que no tiene porqué ser entero,
puede ser un String.
Se usa un objeto como clave (índice) hacia otro objeto (valor).
Por ejemplo, puede tener un índice tipo String y un valor entero
(Integer) o ambos pueden ser String…
Pertenece al paquete (package) java.util.
HashMap
Creación:
import java.util.HashMap; // importar HashMap List class
HashMap <String,String> coches = new HashMap();// Crearlo
Métodos:
coches.put(“indice”,“elemento”);
coches.remove(“indice”);
coches.get(“indice”);
coches.clear();
coches.size();
…
Iterator
Iterator
Un iterador (Iterator) es un objeto que se utilizada para recorrer
colecciones, como ArrayList o HashSet.
El termino técnico para recorrer los elementos de una estructura
de datos es iterar, de ahí el nombre.
Pertenece al paquete (package) java.util.
El método iterator() se usa para conseguir un iterador para una
colección.
Iterator
Utilizando iterator
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
// Crear el iterador
Iterator<String> it = cars.iterator();
// Imprimirlos todos
while(it.hasNext()){ System.out.println(it.next()); }