Arrays, Contenedores y...
Transcript of Arrays, Contenedores y...
![Page 1: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/1.jpg)
Arrays, Contenedores y Colecciones
Introducción al desarrollo del Software con la plataforma J2EE
Curso de Extensión UniversitariaGijón, 2006
![Page 2: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/2.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 2
Justificación
Es necesario guardar objetos (referencias a objetos) para manipularlos desde los programas. J2EE proporciona dos (tres) mecanismos:
ArraysContenedores (colecciones)
![Page 3: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/3.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 3
Arrays
Secuencia lineal de referencias a objetos.Ventajas: eficiencia y manejo de tipoInconveniente: tamaño FIJOExisten arrays de tipos primitivos y arrays de objetos (almacenan referencias a objetos).
![Page 4: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/4.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 4
Ejemplos
ManejoArrayPrimitivoRealiza la definición de diferentes arrays de elementos de tipo “int”.
ManejoArrayMultidimensionalDefine arrays multidimensionales de tipo primitivo
ManejoArrayObjetosRealiza la definición de arrays de objetos de la clase Animal
![Page 5: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/5.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 5
Clase Arrays
Mantiene una serie de métodos estáticos para manipular arrays (java.util.Arrays)Métodos fundamentales:
equals(): dos arrays son igualesfill(): para rellenar un array con un valorsort(): para ordenar un arraybinarySearch: para encontrar un valor en un array ordenado
Sobrecargados para tipos primitivos y objetosMétodo asList(): convierte un array en un contenedor List.
![Page 6: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/6.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 6
Ejemplo Clase Arrays
Crea arrays de StringUtiliza los métodos de Arrays para:
RellenarlosCompararlosOrdenarlosBuscar un String
![Page 7: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/7.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 7
Colecciones
Permite almacenar y organizar objetos de manera útil para un acceso eficiente.
Se encuentran en el paquete java.util
Núcleo de abstracciones de colecciones de utilidad (interfaces) e implementaciones ampliamente útiles.
![Page 8: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/8.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 8
Colecciones
Las interfaces proporcionan métodos para todas las operaciones comunes y las implementaciones concretas especifican la decisión de las operaciones no permitidas.(java.lang.UnsupportedOperationException)
Sobre los elementos se puede iterar (Iterator)
![Page 9: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/9.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 9
Colecciones
Inconvenientes:Almacenan referencias a Object, se pierde la información de Tipo
Hay que realizar una conversión de tipo antes de utilizar las referencias.
![Page 10: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/10.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 10
Jerarquía de colecciones
LinkedList
ListIterator
Iterator
AbstractMap
HashMap
ArrayList
Collection Map
SortedMap
AbstractSequentialList
TreeMapSortedSet
AbstractSetAbstractList
AbstractCollection
SetList
HashSet TreeSetextendsimplements
classinterface
devuelve
devuelve
devuelve
![Page 11: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/11.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 11
Colecciones e iteradores
Interfaz Collection (elementos individuales):
Interfaz List: elementos con una secuencia concreta. Clases ArrayList y LinkedListInterfaz Set: no admite duplicados. Clases HashSet y TreeSet
Interfaz Map (grupo de pares clave-valor)Clases TreeMap, HashMap
Iteratores: interfaz Iterator
![Page 12: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/12.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 12
Ejemplo
PrimerContenedor.javaCrea tres contenedores:
ArrayListHashSetHashMap
![Page 13: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/13.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 13
Interfaz Collection
Métodos -int size()-boolean empty()-boolean contains(Object elem)-Iterator iterator()-Object[] toArray(), Object[] toArray(Object dest[])-boolean add(Object elem),-boolean remove(Object elem)-void clear()
![Page 14: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/14.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 14
Interfaz List (extends Collection)
Una colección cuyos elementos permanecen en un orden particular a menos que se modifique la lista (no significa lista enlazada aunque es una posible implementación).
- void add(int index, Object element)- Object remove(int index)- Object get(int index)- Object set(int index, Object element)- int indexOf(Object o)- int lastIndexOf(Object o)- List subList(int min, int max)
![Page 15: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/15.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 15
Interfaz Set (extends Collection)
Una colección (conjunto) donde no puede haber elementos repetidos, y cuyos elementos no se almacenan necesariamente siguiendo un orden particular.
-Mismos métodos que Collection.
![Page 16: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/16.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 16
Interfaz SortedSet (extendsCollection)
Conjunto con elementos ordenados.-Object first()-Object last()-SortedSet subSet(Object fromElement, Object toElement)-SortedSet headSet(Object toElement)-SortedSet tailSet(Object fromElement)
![Page 17: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/17.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 17
Interfaz Iterator
Permite iterar entre los elementos de una colección
boolean hasNext();Object next(); void remove();
La interfaz ListIterator extiende a Iterator y maneja un objeto Listordenado. Permite iterar hacia delante y hacia atrás.
![Page 18: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/18.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 18
Ejemplo de uso de Iteradores
Cálculo del gasto total de un departamento. Plantilla es una colección que implementa la interfaz Collection
public double gastoDpto(){double gasto=0;Iterator it=plantilla.iterator();while (it.hasNext()){
gasto+=((Empleado)it.next()).getSueldo();}return gasto;
}
![Page 19: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/19.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 19
Implementaciones de Collection
Las implementaciones de la interfaz Collection son:
LinkedListArrayListHashSetTreeSet
Todas son Serializable
![Page 20: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/20.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 20
LinkedList
Una implementación de una lista doblemente enlazada.
La modificación es poco costosa para cualquier tamaño, pero el acceso aleatorio es lento.
Útil para implementar colas y pilas.-getFirst-getLast-removeFirst-removeLast-addFirst-addLast
![Page 21: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/21.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 21
Ejemplos de LinkedList
01-LinkedListImplementación y manejo de un
contenedor de tipo LinkedList.Utiliza métodos e iteradores
02- PilaImplementación y manejo de una pila
implementado con LinkedList.
Ejercicio: Realizar la implementación de l Li k dLi t
![Page 22: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/22.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 22
ArrayList
Una lista implementada utilizando un arrayde dimensión modificable.
Es costoso añadir o borrar un elemento cerca del principio de la lista si ésta es grande, pero es relativamente poco costoso de crear y rápido para acceso aleatorio.
![Page 23: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/23.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 23
HashSet
Un Set implementado mediante una tabla hash.
Es una buena implementación de propósito general por lo que la búsqueda, la adición y eliminación son insensibles al tamaño de los contenidos.
![Page 24: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/24.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 24
TreeSet
Un SortedSet implementado utilizando un árbol binario equilibrado.
Es más lento para buscar o modificar que un HashSet, pero mantiene los elementos ordenados.
Asume que los elementos son comparablessi no se le ha pasado un comparator en el constructor.
![Page 25: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/25.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 25
Interfaz Map
Un objeto que asocia claves con valores. No puede tener claves duplicadas.
Object put(Object key, Object value); Object remove(Object key); Object get(Object key); containsKey, containsValue, isEmpty, size
![Page 26: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/26.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 26
Interfaz Map
Proporciona tres vistas de colección: colección de claves (keySet), colección de valores (values), colección de asociaciones clave-valor (entrySet).
![Page 27: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/27.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 27
Interfaz SortedMap (extends Map)
Un mapa cuyas claves están ordenadas.
- Object firstKey(), - Object lastKey(), - SortedMap subMap(Object minKey, Object maxKey),
- SortedMap headMap(Object maxKey), - SortedMap tailMap(Object minKey)
![Page 28: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/28.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 28
Implementaciones de Map
Las implementaciones de la interfaz Mapson:
HashMapTreeMap
![Page 29: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/29.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 29
HashMap
Una implementación de Map con una tabla hash.
El método hashCode de cada clave se utiliza para seleccionar un lugar en la tabla
Una colección de utilidad muy general con tiempos relativamente cortos de búsqueda e inserción.
![Page 30: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/30.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 30
Ejemplo de HashMap
03- HashMap: Crea una agenda como un HashMap donde relaciona claves y objetos de la clase persona.
Utiliza iteradores
![Page 31: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/31.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 31
TreeMap
Una implementación de SortedMap utilizando un árbol binario equilibrado que mantiene sus elementos ordenados por clave.
Útil para conjuntos de datos ordenados que requieren una búsqueda por clave moderadamente rápida.
Asume que los elementos son comparables si no se le ha pasado un comparator en el constructor.
![Page 32: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/32.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 32
Convenciones sobre excepciones
UnsupportedOperationExceptionMétodos opcionales en la implementación de una interfaz
ClassCastExceptionEl tipo del elemento que se desea insertar no es del tipo apropiado
![Page 33: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/33.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 33
Convenciones sobre excepciones
IllegalArgumentExceptionEl valor del elemento no es apropiado para la colección
NoSuchElementExceptionLa colección de la que se quiere devolver un elemento está vacía
NullPointerExceptionSe pasa como argumento una referencia con valor null cuando la colección no admite este valor.
![Page 34: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/34.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 34
Conversiones de tipos
Ejemplo: ArrayListTipoObjetoDos clases básicas: Perro y GatoCrea un ArrayList de la clase GatoRellena el ArrayList con gatosIntroduce un perroMuestra el contenido del ArrayList
![Page 35: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/35.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 35
Declaración de colecciones
import java.util.*;
public class ColeccionSimple {public static void main( String args[]){
List c = new ArrayList();for( int i=0; i < 10; i++ )
c.add(new Integer(i));Iterator it = c.iterator();while( it.hasNext() )
System.out.println(it.next());}
}
interfaz
Clase concreta
![Page 36: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/36.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 36
Las utilidades de Collections
public static Object min(Collectioncol)public static Object max(Collectioncol)public static Object min(Collectioncol, Comparator comp)public static Object max(Collectioncol, Comparator comp)public static void reverse(Listlista)
![Page 37: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/37.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 37
Las utilidades de Collections
public static void copy(List dst, List fnt)public static void sort(List lista)public static void sort(List lista, Comparator comp)public static int binarySearch(Listlista, Object clave)public static int binarySearch(Listlista, Object clave, Comparatorcomp)
![Page 38: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/38.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 38
Conclusiones
Si un método tiene que devolver (pasar como parámetro) una colección de objetos, el tipo será Iterator o cualquiera de las interfaces de colección.
![Page 39: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/39.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 39
Conclusiones
El tipo de la declaración de los atributos y variables locales será cualquiera de las interfaces de colección.List lista = new ArrayList();
Excepción: LinkedList si la utilizamos como pila o cola.
Utilizar SIEMPRE Iterator para el recorrido de cualquier colección.
![Page 40: Arrays, Contenedores y Coleccionesdi002.edv.uniovi.es/~cueva/asignaturas/extension/2006/Java/files/... · manipular arrays (java.util.Arrays) zMétodos fundamentales: zequals(): dos](https://reader031.fdocuments.us/reader031/viewer/2022011801/5adf83967f8b9a1c248c1e6b/html5/thumbnails/40.jpg)
Introducción al desarrollo del Software con la plataforma J2EE 40
Ejercicio
Realizar un ArrrayList de Mascotas, que sea “consciente” del tipo y que encapsule la funcionalidad del ArrayListy de Collections.Todas las mascotas de la práctica deben estar dentro de la Caseta.