domingo, 16 de diciembre de 2012

Colecciones: Interfaz List

Buenas amigos, como ya vimos, en el tema anterior hicimos una breve introducción a las colecciones. En este nuevo tema vamos a ver la construcción y el funcionamiento de la "interfaz List".


Una de las características de la "interfaz List" es el orden de almacenamiento, asegurando que los elemento se mantengan en un orden determinado.


Esta interfaz nos proporciona métodos para realizar las operaciones básicas en una colección:
      • Añadir un objeto a la colección.
      • Eliminar un objeto de la colección.
      • Obtener un objeto de la colección.
      • Localizar un objeto en la colección.
      • Iterar a través de la colección.
A continuación vamos a ver como se crea una colección y a manejarnos con ella, para ello vamos a utilizar sus subclases.

ArrayList:

 Como ya dije, un ArrayList es una colección ordenada pero no clasificada. la característica más importante que posee, es la rápida iteración que tiene. Para crear un ArrayList utilizamos la siguiente instrucción:
              • ArrayList nombreVariable =new ArrayList();

Esta simple instrucción nos crea el ArrayList, podéis observar que no le damos un tamaño, eso se debe a que, como ya dijimos, son estructuras dinámicas y pueden crecer o decrecer según las necesidades que tenga que cubrir.

Los métodos utilizados por ArrayList son:
    • boolean add(object o): Añade un nuevo objeto a la colección, devolviendo true si lo ha insertado y false si no ha podido.
      • al.add("Juan");
    • void add(int posicion, object o): Añade un nuevo objeto a la colección en la posición indicada desplazando hacia arriba el resto de la colección.
      • al.add(1,"Pablo");
    • object get(int posicion): Devuelve el objeto que ocupa la posición indicada. Cabe mencionar que al devolvernos un elemento de tipo objeto, nosotros debemos hacerle la conversión explicita.
      • (String)al.get(0);
      • Como podéis ver, le he tenido que hacer una conversión a String, ya que en este ejemplo, estamos trabajando con cadenas.
    • object remove(int posicion): Elimina de la colección el objeto la posición indicada. no hay que hacerle conversión de tipo, ya que, como lo a a eliminar, no le hace falta saber de que tipo es.
      • al.remove(0);
    • void clear(): Elimina todos los elementos almacenados en la colección.
      • al.clear();
    • int Size(): Devuelve el tamaño de la colección. Con este método y el método "get(int posicion)" podemos recorrer esta colección con un simple "for":
      • for(int i=0;i<al.size();i++){
      •        System.out.print((String)al.get(i));
      • }
      • Con esta simple instrucción, podemos recorrerla, como volvéis a ver, vuelvo a hacer la conversión de los objetos que me devuelve el método "get(int posicion)", es muy importante recordar esto.
Vector:

Bueno, de la clase Vector no vamos a decir mucho, ya que es igual que ArrayList pero con la excepción de que los métodos que utiliza son "Synchronized"(Hablaremos de ello más adelante).

La construcción del Vector se realiza de la siguiente manera:
              • Vector nombreVariable =new Vector();
Los métodos que utiliza son exactamente iguales a los de ArrayList, con la excepción de ser "Synchronized", así que no los voy a volver a repetir.

LinkedList:

Es una colección ordenada y clasificada. Tiene una iteración más lenta que ArrayList, pero no por eso va a ser peor que ésta.

La construcción de esta colección es: 
              • LinkedList nombreVariable=new LinkedList();
Tiene los mismos métodos que ArrayList, y algunos más especifico de esta clase, tales como:
    • void addLast(object o): Inserta un objeto al final de la colección.
      • ll.addLast("Carlos");
    • void addFirst(object o): Inserta un objeto al principio de la colección.
      • ll.addFirst("Luis");
    • object getFirst(): Devuelve el primer objeto de la colección. Hay que hacerle la conversión de tipo.
      • (String)ll.getFirst();
    • object getLast(): Devuelve el último objeto de la colección. Hay que hacerle la conversión de tipo.
      • (String)ll.getLast();
    • object removeFirst(): Elimina el primer objeto de la colección.
      • ll.removeFirst();
    • object removeLast(): Elimina el último objeto de la colección.
      • ll.removeLast();
Por lo demás, utiliza los mismos métodos que ArrayList, aparte de alguno que otro que no he puesto, pero son menos utilizados.

Bien amigos, hasta aquí la "Interfaz List". En el próximo tema veremos la "Interfaz Set".

Un saludo.

No hay comentarios:

Publicar un comentario