2. En java las colecciones se pueden ordenar mediante el uso del método estático sort de la clase java.utils.Collections.
public static <T extends Comparable<? super T>> void sort(List<T> list)
public static <T> void sort(List<T> list, Comparator<? super T> c)
Cualquier colección que deseemos ordenar utilizando el método Collections.sort debe contener elementos que implementen Comparable en cualquiera de sus niveles de jerarquía.
sort(List<T> list)
Collections.sort es un método sobrecargado que también soporta el ordenamiento de elementos aceptando dos parámetros
sort(List<T> list, Comparator<? super T> c)
www.mentoringit.com.mx
3. La clase java.util.Arrays tiene un método para hacer ordenamiento de colecciones llamado sort y este se implementa igual que Collections.sort(). Pero a diferencia de Collections la clase Arrays tiene mas sobrecargas de este método http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html.
El método sort de Arrays también proporciona ordenamiento natural para los tipos de datos primitivos, este método al igual que sort de Collections regresa la lista de elementos ordenada, no se regresa una lista diferente.
Tanto Arrays y Collections ordenan elementos que son mutuamente comparables, es decir son objetos del mismo tipo, no se podría hacer un ordenamiento de una lista que tenga objetos de diferentes tipos.
www.mentoringit.com.mx
4. Tanto las Collections como Arrays proporcionan métodos de búsqueda, se aplican las siguientes reglas:
Las búsquedas son realizadas por medio del método binarySearch().
Cuando una búsqueda se hace de forma satisfactoria el método retorna un valor de tipo int, este valor indica el índice donde se encuentra el elemento.
Una búsqueda que no encuentra el elemento en la colección regresa un valor de tipo int negativo, indicando la posición en donde se debería insertar el elemento que se esta buscando, este valor inicia con -1 para indicar si se debe insertar en la posición 0 del arreglo y así de forma secuencial.
Las colecciones y arreglos que están siendo utilizados para una búsqueda primero deben ser ordenados.
Si realizamos una búsqueda en un arreglo o colección que no fue ordenado previamente, entonces el entero retornado por la búsqueda es un valor impredecible.
www.mentoringit.com.mx
5. Si el arreglo o colección fue ordenado de forma natural, entonces la búsqueda se debe realizar también de forma natural, es decir no debemos enviar ningún Comparator al método binarySearch().
Si el arreglo o colección fue ordenado utilizando alguna implementación de Comparator, entonces la búsqueda se debe hacer enviando la misma implementación de Comparator el cual es enviado como segundo parámetro al método binarySearch().
Los ordenamientos para tipos primitivos no deben hacerse utilizando Comparator, estos ordenamientos se hacen siempre de forma natural.
www.mentoringit.com.mx