2011-04-14 9 views

Respuesta

15

Si su colección está ordenada, binarySearch() será O (log n) en contraposición a indexOf() 's O (n) y definitivamente verá una mejoría.

+0

Esto es cierto solo si la colección permite el acceso aleatorio de complejidad de tiempo constante, por ejemplo, ArrayList. No es cierto para una LinkedList. – davmac

8

para que binarySearch() funcione, su lista debe estar ordenada. equals() y hashCode() no tienen nada que ver con la clasificación. sus objetos deben ser Comparables, o debe tener un Comparador relevante. de cualquier manera, usted debe ordenar la Lista primero.

y sí, suponiendo que la lista esté ordenada, entonces probablemente obtendrá un mejor rendimiento de binarySearch() en comparación con indexOf().

+0

En realidad, mis artículos también son Comparables. –

3

Obtendrá un rendimiento aún mejor utilizando un HashSet. Eso tomará más espacio, sin embargo.