Descargue como PDF, TXT o lea en línea desde Scribd
Descargar como pdf o txt
Está en la página 1de 19
UNIVERSIDAD NACIONAL DEL OESTE
PROGRAMACIÓN CON OBJETOS I
Profesor: Mag. Ing. Pablo Pandolfo Colecciones Colecciones Concepto:
Representa un grupo de objetos (elementos).
Es el almacén lógico donde guardar los elementos. En Java se emplea la interfaz genérica Collection. Tipos (interfaces): Set (HashSet, TreeSet, LinkedHashSet). List (ArrayList, LinkedList) Map (HashMap, TreeMap, LinkedHashMap) Colecciones Diagrama de decisión para uso de Colecciones Java: Colecciones Jerarquía: Colecciones Set (interface):
Define una colección que no puede contener elementos
duplicados. Implementaciones: HashSet: almacena los elementos en una tabla hash. No importa el orden que ocupen los elementos. TreeSet: almacena los elementos ordenándolos en función de sus valores. Los elementos almacenados deben implementar la interfaz Comparable. LinkedHashSet: almacena los elementos en función del orden de inserción. Colecciones List (interface):
Define una sucesión de elementos. Admite duplicados.
Implementaciones: ArrayList: se basa en un array redimensionable que aumenta su tamaño según crece la colección de elementos. Es la que mejor rendimiento tiene sobre la mayoría de situaciones. LinkedList: se basa en una lista doblemente enlazada de los elementos, teniendo cada uno de los elementos un puntero al anterior y al siguiente elemento. Stack: LIFO Colecciones ArrayList:
ArrayList<Integer> vector = new ArrayList<Integer>();
System.out.println("Esta vacia?: " + pila.empty()); pila.push(2); pila.push(5); pila.push(3); System.out.println("toString: " + pila); pila.pop(); System.out.println("toString: " + pila); System.out.println("Esta vacio?: " + pila.empty()); System.out.println("Elemento en el tope: " + pila.peek()); Colecciones Colecciones Map (interface): Asocia claves a valores. No puede contener claves duplicadas y; cada clave, sólo puede tener asociado un valor. Implementaciones: HashMap: almacena las claves en una tabla hash. Es la implementación con mejor rendimiento de todas pero no garantiza ningún orden a la hora de realizar iteraciones. TreeMap: almacena las claves ordenándolas en función de sus valores. Las claves almacenadas deben implementar la interfaz Comparable. LinkedHashMap: almacena las claves en función del orden de inserción. Properties: útil para almacenar y recuperar archivos de propiedades (opciones de configuración para programas) Colecciones Properties:
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("user", "ppando"); map.get("user"); Ejercicios 1) En una terminal de teletipo existe un carácter de retroceso que permite cancelar el último carácter. Por ejemplo: si el carácter de retroceso es /, entonces la línea abc/d//e será interpretada como ae. Existe también un carácter anulador que elimina todos los caracteres ingresados hasta el momento, suponga que ese carácter es &. Realice un método que dada una tira de caracteres terminadas con * (leída del archivo “Fuente.txt”) ejecute las operaciones indicadas si se encuentra con el carácter / o el &. Debe por ultimo imprimir la tira resultante. 2) En un supermercado se mantiene una cola A con diversos clientes de los que se conoce número de ubicación en la cola y cantidad de productos que lleva. Se abre una nueva cola B para clientes que llevan menos de 5 productos. Usted debe dejar en la cola A los clientes que llevan más de 5 o hasta 5 productos en el orden en que estaban, y en la cola B los que compran menos de 5 artículos, respetando el orden que tenían en la cola A. En ambas colas reasignar un nuevo número de ubicación. Ejercicios 3) Se tiene ordenada por código de producto, una lista donde cada Producto, tiene como atributos código, descripción, importe y stock. Implementar métodos para: A) Imprimir la lista completa. B) Dado un entero k, imprimir el k-ésimo elemento. C) Incrementar el importe de un producto dado en un 10%. D) Devolver el stock de un producto dado o cero si no esta. E) Devolver una lista de productos con stock inferior a 50 unidades. F) Devolver una lista de productos con stock superior o igual a 50 unidades. Ejercicios 4) Diseñe e implemente un juego de memoria donde la idea es para un nivel inicial encontrar los pares de coincidencias. La solución debe contemplar varios niveles de dificultad, para ello debe disponer de una colección de tableros, modelizados a través de una jerarquía. La clase abstracta Tablero debe incluir métodos para inicializar el tablero y para indicar las selecciones sucesivas del usuario. Para la entrega del ejercicio, debe implementar un tablero de 6x6 celdas que contengan números dispuestos aleatoriamente. Cuando el usuario escoge una celda se visualiza el número que contiene la misma, si la segunda selección resulta en coincidencia entonces ambas celdas desaparecen, sino ambas ocultan nuevamente el número que contienen. Durante el juego además del tablero se debe mostrar la cantidad de selecciones que realiza el usuario.