Generalidades acerca de las colecciones:
Una colección es una estructura de datos (en realidad, un objeto) que puede guardar referencias a otros objetos. Por lo general, las colecciones contienen referencias a objetos, los cuales son todos del mismo tipo. Las interfaces del marco de trabajo de colecciones declaran las operaciones que se deben realizar en forma genérica en varios tipos de colecciones. La fi gura 19.1 enlista algunas de las interfaces del marco de trabajo de colecciones. Varias implementaciones de estas interfaces se proporcionan dentro del marco de trabajo. Los programadores también pueden proporcionar implementaciones específi cas para sus propios requerimientos.
La clase Arrays
La clase Arrays proporciona métodos static para manipular arreglos. En el capítulo 7, nuestra discusión acerca
de la manipulación de arreglos fue de nivel bajo, en el sentido en que escribimos el código en sí para ordenar y
Figura 19.1 | Algunas interfaces del marco de trabajo de colecciones.
19_MAQ_CAP_19_DEITEL.indd 794 4/19/08 1:31:17 AM
buscar en los arreglos. La clase Arrays proporciona métodos de alto nivel, como sort para ordenar un arreglo,
binarySearch para buscar en un arreglo ordenado, equals para comparar arreglos y fill para colocar valores en
un arreglo. Estos métodos se sobrecargan para los arreglos de tipo primitivo y los arreglos tipo Object. Además,
los métodos sort y binarySearch están sobrecargados con versiones genéricas que permiten a los programadores
ordenar y buscar en arreglos que contengan objetos de cualquier tipo. En la fi gura 19.2 se demuestra el uso de
los métodos fill, sort, binarySearch y equals. El método main (líneas 65 a 85) crea un objeto UsoArrays e
invoca a sus métodos.
En la línea 17 se hace una llamada al método static fill de Arrays para llenar los 10 elementos del arreglo
arregloIntLleno con 7s. Las versiones sobrecargadas de fill permiten al programador llenar un rango específi co
de elementos con el mismo valor.
En la línea 18 se ordenan los elementos del arreglo arregloDouble. El método static sort de la clase
Arrays ordena los elementos del arreglo en orden ascendente, de manera predeterminada. Más adelante en este
capítulo veremos cómo ordenar elementos en forma descendente. Las versiones sobrecargadas de sort permiten
al programador ordenar un rango específi co de elementos.
En las líneas 21 y 22 se copia el arreglo arregloInt en el arreglo copiaArregloInt. El primer argumento
(arregloInt) que se pasa al método arraycopy de System es el arreglo a partir del cual se van a copiar los elementos.
El segundo argumento (0) es el índice que especifi ca el punto de inicio en el rango de elementos que se
van a copiar del arreglo. Este valor puede ser cualquier índice de arreglo válido. El tercer argumento (copiaArregloInt)
especifi ca el arreglo de destino que almacenará la copia. El cuarto argumento (0) especifi ca el índice en
el arreglo de destino en donde deberá guardarse el primer elemento copiado. El último argumento especifi ca el
número de elementos a copiar del arreglo en el primer argumento. En este caso copiaremos todos los elementos
en el arreglo.
En la línea 50 se hace una llamada al método estático binarySearch de la clase Arrays para realizar una
búsqueda binaria en arregloInt, utilizando valor como la clave. Si se encuentra valor, binarySearch devuelve
el índice del elemento; en caso contrario, binarySearch devuelve un valor negativo. El valor negativo
devuelto se basa en el punto de inserción de la clave de búsqueda: el índice en donde se insertaría la clave en
el arreglo si se fuera a realizar una operación de inserción. Una vez que binarySearch determina el punto de
inserción, cambia el signo de éste a negativo y le resta 1 para obtener el valor de retorno. Por ejemplo, en la fi gura
19.2, el punto de inserción para el valor 8763 es el elemento en el arreglo con el índice 6. El método binarySearch
cambia el punto de inserción a –6, le resta 1 y devuelve el valor –7. Al restar 1 al punto de inserción se
garantiza que el método binarySearch devuelva valores positivos (>= 0) sí, y sólo si se encuentra la clave. Este
valor de retorno es útil para agregar elementos en un arreglo ordenado. En el capítulo 16, Búsqueda y ordenamiento,
se habla sobre la búsqueda binaria con detalle.
Comentarios
Publicar un comentario