Está en la página 1de 7

COLECCIONES

PROGRAMACIÓN ORIENTADA A
OBJETOS

MARITZA MONTEJO

AUTOR:
OMAR FARID VIRGÜEZ LÓPEZ 20152015049
FACULTAD DE INGENIERÍA FECHA DE ELABORACIÓN: 05/11/2015
INGENIERÍA INDUSTRIAL
BOGOTÁ D.C.
2015

¿Qué es una colección?

 Una colección de objetos es un objeto que puede almacenar un número variable


de elementos siendo cada elemento otro objeto. Siguiendo con nuestro símil,
podríamos ver una colección como una caja que contiene más cajas dentro. Puede
haber distintos tipos de colecciones de tamaño “flexible”, es decir, que se pueden
encoger o agrandar según las necesidades.
 A diferencia de los arreglos, las colecciones solamente mantienen referencias a
objetos de tipo Object.
 Cualquier objeto puede ser almacenado en una colección.
 Las colecciones pueden:
o Cambiar de tamaño dinámicamente
o Proveer ordenamiento
o Insertar y borrar elementos

Tipo de Colecciones

1. Una lista (list) es una colección de objetos donde cada uno de ellos lleva un índice
asociado. Así, podríamos tener una lista con los nombres de las personas que han
utilizado un servicio de acceso a internet que podría ser: usuarios --> (Juan R.R.,
Sara G.B., Rodolfo M.N., Pedro S.T., Claudio R.S., Juan R.R.). Donde cada contenido
va asociado a un índice, usuario (0) sería Juan R.R., usuario (1) sería Sara G.B,
usuario (2) sería Rodolfo M.N. y así sucesivamente. En una lista podemos insertar y
eliminar objetos de posiciones intermedias. Ejemplos de listas son la clase
ArrayList y LinkedList del API de Java.

2. b) Un conjunto (set) sería una colección de objetos que no admite duplicados.


Siguiendo el ejemplo anterior, un conjunto nos serviría para saber los usuarios
distintos que han utilizado el servicio de acceso a internet, pero no tendríamos
información sobre el orden y una misma persona no aparecería más de una vez, ni
siquiera, aunque hubiera utilizado el servicio varias veces. Ejemplo de conjunto
sería la clase HashSet del API de Java.

3. c) Una cola (queue) sería una colección de objetos que se comportan como lo


haría un grupo de personas en la cola de una caja de un supermercado. Los objetos
se van poniendo en cola y el primero en salir es el primero que llega.

4. Una pila (stack) sería una colección de objetos que se comportan como lo haría un
montón de objetos apilados, el último en añadirse queda en la cima de la pila y el
primero en salir es el último que ha llegado. El primero en llegar está en el fondo
de la pila.  

5. Un Mapa (Map) es una colección de pares: clave/valor. Esta clave es usada para
indexar (Ordenar una serie de datos o informaciones de acuerdo a un criterio
común a todos ellos, para facilitar su consulta y análisis) los elementos. En este
tipo de colección no son permitidos los duplicados

Ejemplos:

1. ArrayList:

La ventaja es que no tiene un tamaño definido, por lo cual se puede ir añadiendo


elementos sin un final. La desventaja es lo pesado que se pone al tener que
eliminar un elemento, debido a que todos los elementos que estén después del
eliminado se tienen que correr una casilla.

public static void main(String[] args) {

ArrayList<String> prueba = new ArrayList<String>();

prueba.add("Este ejemplo");

prueba.add("Funciona muy bien");


System.out.println("el tamaño del arraylist es de " + prueba.size());

System.out.println(prueba.get(0) + prueba.get(1)); }

2. LinkedList:

Al igual que en el ArrayList, en este no se define su tamaño desde un inicio, sino


que se va incrementando a medida se añaden elementos. La diferencia principal
del LinkedList es que para añadir un elemento en la posición 20, el programa se
desplaza desde la posición inicial hasta llegar a la 20, lo cual es su peor desventaja
ya que manejar una gran cantidad de datos hace que el tiempo de uso se vuelva
exponencial. Se usa en los casos que se necesite añadir elementos al final de la lista
y se eliminan al inicio.

public static void main(String[] args) {

LinkedList prueba = new LinkedList ();

prueba.add (" Tengo que esforzarme ");

prueba.add( 0 ," Es la nota que debo evitar");

prueba.addFirst(1);

System.out.println("El tamaño del linkedlist es de " + prueba.size());

System.out.println (prueba);

3. HashSet:

Como toda Collection tipo Set, aquí el orden en que se almacenan los elementos
no importa, pero el averiguar si un objeto ya está presente en el Set (conjunto) es
una de la utilidades más útiles de los Sets. Aquí aparece el HashSet el cual utiliza
una de las características fundamentales de la clase Objects, debido a que todos
los objetos heredan las características de esta clase, todos los objetos tienen la
función hashCode(), la cual le permite obtener un numero representativo del
objeto, por lo tanto un objeto siempre tendrá un mismo número representativo. El
HashSet almacena el hash de cada objeto en una lista, que el HashSet luego utiliza
para saber si un objeto ya está dentro del sí misma.

public static void main(String[] args) {


Scanner leer = new Scanner(System.in);

HashSet<String> name = new HashSet<String>();

String name = null;

name.add("Omar");

name.add("Heyner");

name.add("Juan");

name.add("Daniel");

name.add("Camila");

name.add("Maritza");

for (int i = 0; i < 5; i++) {

System.out.println("Ingrese un nombre");

name.add(leer.nextLine());

name.remove("Karen");

System.out.println("La cantidad nombres diferentes que hemos


almacenado son "+nombres.size() +" \n Y estos nombres son \n" +
nombres);

name.clear();

4. TreeSet:

Aunque es un Set, el treeset si mantiene un orden, aunque este orden es un orden


natural (si son String será un orden alfabético, si es número será un orden
ascendente numéricamente, etc) pero en este no se pueden repetir los elementos.
Tiene una serie de características que lo hacen muy útil en el momento que me
interese guardar un conjunto de elementos y que se quiera organizar estos de
forma determinada.
public static void main(String[] args) {

Scanner leer = new Scanner(System.in);

TreeSet<String> names = new TreeSet<String>();

names.add("Hortensio");

names.add("Hermelinda");

names.add("Anastasia");

names.add("Marta");

names.add("Magnolia");

names.add("Pompilio");

names.add("Clavoncio");

names.add("Fisgón");

names.add("Pastancia");

for (int i = 0; i < 2; i++) {

System.out.println("Digite el nombre");

names.add(leer.nextLine());

System.out.println("La cantidad de nombres almacenados sin repetirse son:


" + names.size());

System.out.println("Los nombres ordenados Alfabéticamente y sin repetirse


son " + names);
5. Map y HashMap:

Es un tipo de Collection que se podría definir en 2 dimensiones, debido a que cada


elemento tiene una llave o Key con la cual se puede acceder al elemento. Es muy
útil y ayuda a mantener un orden como nosotros lo veamos más correcto. A
diferencia de los Sets los Maps si aceptan duplicados.

public static void main(String[] args) {

Scanner leer = new Scanner(System.in);

Map<Number, String> map = new HashMap<Number, String>();

map.put(1, "Manzana");

map.put(2, "Pera");

map.put(3, "Banano");

map.put(4, "Uvas");

map.put(5, "Sandia");

map.put(6, "Melon");

map.put(7, "Papaya");

map.put(8, "Durazno");

System.out.println("La fruta que le pertenece la llave 5 es: "+map.get(5));

map.remove(5);

for (int i = 0; i < map.size(); i++) {

System.out.println("Las frutas almacenadas en el map son "+map.get(i));


}

map.clear();

También podría gustarte