Tengo una lista de más de 37K artículos, y yo ya implementadas hashCode()
, equals()
, así que me pregunto Collections.binarySearch()
puede ayudar a mejorar el rendimiento y más rápido que indexOf()
método.Collections.binarySearch() vs. Lista indexOf()
Respuesta
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.
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().
En realidad, mis artículos también son Comparables. –
Obtendrá un rendimiento aún mejor utilizando un HashSet. Eso tomará más espacio, sin embargo.
- 1. ¿Predicado de IndexOf?
- 2. Javascript indexOf
- 3. IndexOf demasiado lento en la lista. Una solución más rápida?
- 4. Lista vs Lista iterador
- 5. indexOf no funciona
- 6. C# subcadena indexOf
- 7. jQuery indexOf function?
- 8. cadena IndexOf y reemplazar
- 9. .NET: ArrayList vs Lista
- 10. itertools.ifilter vs. filtro vs. lista de comprensiones
- 11. Función IndexOf en T-SQL
- 12. ¿Por qué IndexOf devuelve -1?
- 13. Cómo usar indexOf en KnockoutJS
- 14. NSString indexOf en Objective-C
- 15. indexOf sintaxis para matrices multidimensionales?
- 16. ¿Dónde está Java's Array indexOf?
- 17. mysql get substring offset (indexOf)?
- 18. C# Array.FindAllIndexOf which FindAll IndexOf
- 19. ArrayList indexOf() devuelve el índice incorrecto?
- 20. EF ICollection Vs Lista Vs IEnumerable Vs IQueryable
- 21. Lista de Java vs ArrayList
- 22. C# arsenal vs lista genérica
- 23. Lista vs Mapa en Java
- 24. Lista genérica FindAll() vs. foreach
- 25. list.item (0) Lista vs [0]
- 26. Lista con comparables Vs TreeSet
- 27. Práctica recomendada para probar el valor de retorno de indexOf
- 28. ¿Por qué es la lista <T> .IndexOf() mucho más rápida que la lista <T> .Contains()?
- 29. ¿Cómo se implementa la Lista <T> .IndexOf() en C#?
- 30. Cómo utilizar el método IndexOf() de la Lista <object>
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