miércoles, 12 de diciembre de 2012

Colecciones

Buenas amigos, en este nuevo tema, y en los posteriores, vamos a hablar de las colecciones, pero ¿qué es una colección?. Bien, digamos para simplificar un poco,  que una colección es un array de objetos.

Anteriormente creábamos arrays con números, cadenas, etc...Ahora con las colecciones vamos a crear arrays para los objetos, con la diferencia de que las colecciones son dinámicas, pueden ir variando su tamaño, añadir nuevos objetos y eliminarlos.


Las colecciones pueden ser, según se almacenen los objetos, de 2 tipos:

      • Ordenadas: Pueden ser recorridas siguiendo un orden, ya sea por un índice como por el orden en el que se han insertado.
      • Clasificadas: Los objetos están clasificados siguiendo un orden natural.definido por la clase del objeto.
Hay 4 tipos de interfaces de colección:
    • List: Lista de objetos asociados a un índice. Acepta duplicados. Tiene asociada 3 clases a las que implementa:
      • ArrayList: Representa una lista ordenada pero no clasificada. La iteración o recorrido por esta colección es muy rápida.
      • Vector: Igual que ArrayList, pero sus métodos son Synchronized (Ya lo explicaremos más adelante)
      • LinkedList: Representa una lista ordenada y clasificada. La iteración o recorrido por esta colección es mas lenta que por ArrayList o Vector.
    • Set: Representa un conjunto de elementos. No admite duplicados. Tiene asociada 3 clases a las que implementa:
      • HashSet: Es un conjunto no ordenado y no clasificado de elementos.
      • LinkedHashSet: Es un conjunto ordenado y no clasificado de elementos.
      • TreeSet: Es un conjunto ordenado y clasificado.
    • Map: Conjunto de elementos con una clave o identificador. Tiene asociada 4 clases a las que implementa:
      • HashMap: No es ni ordenada ni clasificada, permite tener claves con valor "null" y varios elementos con valor "null".
      • Hashtable: Igual que HashMap, pero con métodos Synchronized.
      • LinkedHashMap: Ordenada por orden de inserción.
      • TreeMap: Es ordenada y clasificada.
    • Queue: Se trata una interfaz de tipo (LIFO) y pila (FIFO). Algo que se debería saber:
      • LIFO: Last In, First Out. Último en entrar, primero en salir.
      • FIFO: First In, First Out: Primero en entrar, primero en salir
    • Tiene una clase asociada a la que implementa (que yo haya estudiado)
      • PriorityQueue: Los elementos son ordenados según su orden natural.
La verdad sea dicha, esta última colección no la he utilizado nunca, así que perdonar si se me pasa algo.También decir que las 4 Interfaces no son las únicas, hay más, pero a mi entender estas son las más usadas.

Esto es un poco rollo, pero es importante saberlo. En temas posteriores iremos profundizando más en el tema de las colecciones, no os asustéis, que aún queda mucho que explicar de las colecciones, construcción de una colección, iteración, métodos, etc...Esto más que nada es una introducción.

Un saludo.

No hay comentarios:

Publicar un comentario