bloque4:estructurasdatos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bloque4:estructurasdatos [04/03/2018 14:43] – [Recorrer una lista] Fernando Valdeón | bloque4:estructurasdatos [05/03/2018 11:39] (actual) – borrado Fernando Valdeón | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Estructuras de datos dinámicas ====== | ||
| - | Hasta ahora conocemos los arrays, como la estructura de datos que me permite almacenar una serie de datos del mismo tipo. | ||
| - | |||
| - | Como hemos visto los arrays tienen un tamaño fíjo, que se indica en el momento de su creación. | ||
| - | |||
| - | Existen otras estructuras de datos, que funcionan de forma similar a los arrays, pero aumentan su capacidad o la disminuyen dependiendo de la necesidad. Todo esto en tiempo de ejecución. | ||
| - | |||
| - | Las siguientes clases implementan la interface '' | ||
| - | |||
| - | ===== Clase ArrayList ===== | ||
| - | La clase ArrayList representa una de las estructura de datos más usadas en Java. | ||
| - | |||
| - | Consiste en un array dinámico al que no hay que definirle un tamaño. Cuando añadimos elementos amplia su tamaño, y cuando los borramos lo reduce. | ||
| - | Implementa los métodos de la interfaz [[https:// | ||
| - | |||
| - | Solo permite guardar objetos, por lo que al guardar un tipo primitivo, se convertirá automáticamente a su objeto envoltorio. | ||
| - | |||
| - | ==== Instanciar un ArrayList ==== | ||
| - | Las colecciones, | ||
| - | |||
| - | <code java> | ||
| - | ArrayList< | ||
| - | |||
| - | ArrayList< | ||
| - | |||
| - | ArrayList< | ||
| - | </ | ||
| - | |||
| - | ==== Métodos de ArrayList ==== | ||
| - | |||
| - | <code java> | ||
| - | ArrayList< | ||
| - | |||
| - | //Añade el elemento al ArrayList | ||
| - | lista.add(" | ||
| - | |||
| - | //Añade el elemento al ArrayList en la posición ' | ||
| - | lista.add(n, | ||
| - | |||
| - | //Devuelve el número de elementos del ArrayList | ||
| - | lista.size(); | ||
| - | |||
| - | //Devuelve el elemento en la posición 2 del ArrayList | ||
| - | lista.get(2); | ||
| - | |||
| - | //Comprueba si existe el elemento (' | ||
| - | lista.contains(" | ||
| - | |||
| - | //Devuelve la posición de la primera ocurrencia (' | ||
| - | lista.indexOf(" | ||
| - | |||
| - | //Devuelve la posición de la última ocurrencia (' | ||
| - | lista.lastIndexOf(" | ||
| - | |||
| - | //Borra el elemento de la posición ' | ||
| - | lista.remove(5); | ||
| - | |||
| - | Borra la primera ocurrencia del " | ||
| - | lista.remove(" | ||
| - | |||
| - | //Borra todos los elementos de ArrayList | ||
| - | lista.clear(); | ||
| - | |||
| - | //Devuelve True si el ArrayList está vacío. | ||
| - | lista.isEmpty(); | ||
| - | |||
| - | //Copiar un ArrayList | ||
| - | ArrayList arrayListCopia = (ArrayList) lista.clone(); | ||
| - | |||
| - | //Pasa el ArrayList a un Array | ||
| - | String[] array = lista.toArray(); | ||
| - | |||
| - | </ | ||
| - | |||
| - | ===== Recorrer una lista ===== | ||
| - | Existen 3 formas principales para recorrer una lista: | ||
| - | |||
| - | ==== Bucle for==== | ||
| - | Podemos recorrer un ArrayList del mismo modo que lo hacemos con un array estático. | ||
| - | |||
| - | * Para saber su tamaño usamos el método '' | ||
| - | * La primera posición de un ArrayList es la posición **0**. | ||
| - | |||
| - | <code java> | ||
| - | ArrayList< | ||
| - | |||
| - | //Añado 4 elementos seguidos al ArrayList | ||
| - | |||
| - | listaNombres.add(“Jose”); | ||
| - | listaNombres.add(“Marta”); | ||
| - | listaNombres.add(“Juan”); | ||
| - | listaNombres.add(“Laura”); | ||
| - | |||
| - | //Recorro el array y muestro los elementos | ||
| - | for (int i = 0; i < listaNombre.size(); | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== Interface Iterator ==== | ||
| - | Todas las listas implementan la interface | ||
| - | [[https:// | ||
| - | |||
| - | Los objetos '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | <code java> | ||
| - | ArrayList< | ||
| - | |||
| - | // Añadimos 10 Elementos al ArrayList | ||
| - | for (int i = 1; i <= 10; i++){ | ||
| - | | ||
| - | } | ||
| - | |||
| - | //Obtengo el iterador | ||
| - | Iterator< | ||
| - | |||
| - | while(iterador.hasNext()){ | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | ==== Bucle for each==== | ||
| - | Conocido como '' | ||
| - | |||
| - | Se le indican 3 cosas: | ||
| - | * Tipo de los datos de la lista | ||
| - | * Variable con la que accedo a cada dato de la lista | ||
| - | * Objeto lista | ||
| - | |||
| - | <code java> | ||
| - | ArrayList< | ||
| - | |||
| - | listaNombres.add(“Jose”); | ||
| - | listaNombres.add(“Marta”); | ||
| - | listaNombres.add(“Juan”); | ||
| - | listaNombres.add(“Laura”); | ||
| - | |||
| - | for(String nombre : listaNombres){ | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Clase Stack ===== | ||
| - | Una pila (stack) es una estructura que funciona como una lista //LIFO// (Last-In, First Out). El último elemento añadido, será el primero en salir. | ||
| - | |||
| - | //Se puede entender como una pila de platos, se van colocando uno encima de otro, y se van cogiendo desde arriba hacia abajo//. | ||
| - | |||
| - | Tiene 5 método principales, | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ==== Uso de una pila ==== | ||
| - | Instanciar una pila: | ||
| - | <code java> | ||
| - | Stack< | ||
| - | |||
| - | Stack< | ||
| - | </ | ||
| - | |||
| - | Ejemplo de uso: | ||
| - | <code java> | ||
| - | Stack< | ||
| - | |||
| - | //apilar 3 elementos | ||
| - | pila.push(" | ||
| - | pila.push(" | ||
| - | pila.push(" | ||
| - | |||
| - | //mostrar por consola | ||
| - | for(String cadena : pila){ | ||
| - | | ||
| - | } | ||
| - | |||
| - | //elimina y devuelve elemento que está en la cima (" | ||
| - | String desapilado = pila.pop(); | ||
| - | System.out.println(desapilado); | ||
| - | |||
| - | //devuelve el elemento que está en la cima sin borrarlo (" | ||
| - | String ultimo = pila.peek(); | ||
| - | System.out.println(ultimo); | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Clase LinkedList ===== | ||
| - | La usamos | ||
| - | prima la eficiencia. Es una especie de ArrayList que no tiene definido una posición de inicio ni de fin. | ||
| - | |||
| - | Emplea básicamente lo mismos métodos, y de la misma forma, que la clase ArrayList, ya que son | ||
| - | clases que implementan la interface '' | ||
| - | |||
| - | <code java> | ||
| - | LinkedList< | ||
| - | </ | ||
| - | |||
| - | ===== Otras Colecciones ===== | ||
| - | Dentro de las colecciones existen 3 interfaces principales: | ||
| - | |||
| - | Por ahora hemos visto las colecciones de tipo '' | ||
| - | |||
| - | Pero dependiendo de la finalidad de la colección que necesitemos tenemos otros tipos de estructuras dinámicas: los conjuntos: '' | ||
| - | |||
| - | ==== Mapas ==== | ||
| - | Son colecciones que contienen asociaciones '' | ||
| - | Esto quiere decir que por cada elemento añadido a la colección debemos añadir una clave para obtenerlo: por ejemplo: clave -> dni, valor -> una persona | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | |||
| - | ==== Conjuntos (Sets) ==== | ||
| - | Los conjuntos en Java, al igual que los conjuntos en matemáticas, | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | (c) {{date> %Y}} Fernando Valdeón | ||
bloque4/estructurasdatos.1520174633.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)
