Herramientas de usuario

Herramientas del sitio


bloque3:estructurasdatos

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bloque3:estructurasdatos [07/03/2018 20:00] – [Bucle for each] Fernando Valdeónbloque3:estructurasdatos [16/09/2024 20:53] (actual) – editor externo 127.0.0.1
Línea 11: Línea 11:
 La clase ArrayList representa una de las estructura de datos más usadas en Java. 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.+Consiste en un array dinámico por lo 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://docs.oracle.com/javase/8/docs/api/java/util/List.html|List]] y permite alacenar valores ''null''. Implementa los métodos de la interfaz [[https://docs.oracle.com/javase/8/docs/api/java/util/List.html|List]] y permite alacenar valores ''null''.
  
-Solo permite guardar objetos, por lo que al guardar un tipo primitivo, se convertirá automáticamente a su objeto envoltorio.+Solo permite guardar objetos, por lo que al guardar un tipo primitivo, se convertirá automáticamente a su [[bloque3:wrappers|objeto envoltorio]].
  
 ==== Instanciar un ArrayList ==== ==== Instanciar un ArrayList ====
Línea 75: Línea 75:
 ===== Recorrer una lista ===== ===== Recorrer una lista =====
 Existen 3 formas principales para recorrer una lista: Existen 3 formas principales para recorrer una lista:
-  * **bucle for**: se recorre como siempre, llamando al método ''size()'' para comprobar su tamaño. Puedo borrar elementos o añadirlos a la lista mientras la recorro. +  * **bucle for**: se recorre como siempre, llamando al método ''size()'' para comprobar su tamaño. Puedo añadir elementos a la lista mientras la recorro, pero se debe tener cuidado al borrar
-  * **con un Iterator**: la forma más recomendable si debo borrar elementos mientras recorro la lista.+  * **con ''Iterator''**: la forma más recomendable __si debo borrar elementos__ mientras recorro la lista.
   * **bucle for each**: perfecto para recorrer la lista sin modificarla.   * **bucle for each**: perfecto para recorrer la lista sin modificarla.
  
Línea 96: Línea 96:
  
 //Recorro el array y muestro los elementos //Recorro el array y muestro los elementos
-for (int i = 0; i < listaNombre.size(); i++){+for (int i = 0; i < listaNombres.size(); i++){
    System.out.println(listaNombres.get(i));     System.out.println(listaNombres.get(i)); 
 +}
 +
 +//Cuidado al borrar
 +for (int i = 0; i < listaNombres.size(); i++){
 +   if(listaNombres.get(i).equals("Juan"){
 +      listaNombres.remove(i);
 +      //La i se incrementa, pero hay un elemento menos en la lista
 +      //"Laura" pasa a ser el elemento en la posición i actual
 +      //Y me la saltaré porque la i se incrementa
 +   
 } }
 </code> </code>
Línea 127: Línea 137:
    String elemento = iterador.next(); //Accedo a cada elemento    String elemento = iterador.next(); //Accedo a cada elemento
    System.out.println(elemento); //Muestro por pantalla    System.out.println(elemento); //Muestro por pantalla
-   if(elemento.equals("Elemento3"){+   if(elemento.equals("Elemento 3"){
        iterador.remove(); //Borro el elemento actual        iterador.remove(); //Borro el elemento actual
    }    }
Línea 220: Línea 230:
  
 ==== Conjuntos (Sets) ==== ==== Conjuntos (Sets) ====
-Los conjuntos en Java, al igual que los conjuntos en matemáticas, no permiten contener elementos duplicados. +Los conjuntos en Java, al igual que los conjuntos en matemáticas, no permiten contener elementos duplicados. Implementan la interface ''Set'':
  
   * ''HashSet'' : Almacena los elementos en una tabla //hash// sin mantener ningún orden.   * ''HashSet'' : Almacena los elementos en una tabla //hash// sin mantener ningún orden.
Línea 228: Línea 238:
  
 ==== Mapas ==== ==== Mapas ====
-Son colecciones que contienen asociaciones ''clave'':''valor''.+Son colecciones que contienen asociaciones ''clave'':''valor''Implementar la interface ''Map''
 Esto quiere decir que al añadir un elemento a la colección debemos añadir una clave para identificarlo. Por ejemplo: ''key'' -> dni, ''value'' -> una persona Esto quiere decir que al añadir un elemento a la colección debemos añadir una clave para identificarlo. Por ejemplo: ''key'' -> dni, ''value'' -> una persona
  
bloque3/estructurasdatos.1520452805.txt.gz · Última modificación: 16/09/2024 20:53 (editor externo)