Colecciones vs matrices con respecto a sort() ¿Cuál es la diferencia entre estos dos con respecto método sort()? Sé que Arrays 'sort() está utilizando la búsqueda binaria para sort(), ¿qué pasa con Collections? ¿Y cómo elegir qué usar? Gracias!Colecciones vs matrices con respecto a sort()
Respuesta
Bueno, además de operar en cosas diferentes (Collections.sort
opera en un List
y Arrays.sort
opera sobre una matriz), java.util.Collections.sort()
llamadas con sólo java.util.Arrays.sort()
a hacer el trabajo pesado.
Además, por lo que vale la pena, observe que Arrays.sort
ejecuta una especie de mezcla.
El ordenamiento en las matrices primitivas usa quicksort, aunque (dado que para los primitivos, la propiedad de estabilidad no es necesaria ni significativa). –
parece que es un timsort (modificado de combinación de tipo) en Java 7 http://stackoverflow.com/questions/4018332/is-java-7-using-tim-sort-for-the-method-arrays-sort – rogerdpack
Utilice Arrays.sort() si se trata de una matriz. Use Collections.sort() si está tratando con algo que implementa la interfaz de Colección (por ejemplo, ArrayList).
Como han dicho las otras respuestas, utilizará Collections.sort() cuando se trata de un objeto que implementa la interfaz Collection y el método Arrays.sort() cuando se trata de una matriz.
Una cuestión relacionada es qué tipo de estructuras de datos son mejores si se desea ordenar un conjunto de valores. Si necesita usar una Lista, entonces le sugiero que use una Lista Vinculada ya que las inserciones se ejecutan en O (1) donde algo como una Lista de Arreglos sería O (n).
También puede optar por utilizar una SortedSet si no habrá duplicados o tener duplicados es no deseado. De esta forma, no tiene que preocuparse por usar un método de clasificación externo.
sé ordenar matrices() está utilizando binario búsqueda de una especie()
No, no sé nada de eso. No hace eso. Ver el Javadoc.
La declaración ni siquiera tiene sentido. Usted no puede 'utilizar la búsqueda binaria para ordenar'. La búsqueda binaria solo funcionó cuando los datos están ya ordenados. Tal vez lo que lees es que Arrays.binarySearch()
asume los datos están ordenados.
Collections.sort() actúa en la lista Mientras Arrays.sort() actúa en una matriz.
Arrays.sort() utiliza Dual-pivote Quicksort para Arrays primitivo y mergesort para clasificar matriz de objetos.
Ejemplo de Collections.sort():
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(15);
arr.add(10);
arr.add(5);
arr.add(2);
Collections.sort(arr);
Ejemplo de Arrays.sort():
int[] arr = new int[4]
arr[0]=15;
arr[1]=10;
arr[2]=5;
arr[3]=2;
Arrays.sort(arr);
Collection.sort se utiliza cuando se trata de listas y Arrays.sort es demandado cuando se trata de matrices. Pero internamente Collection.sort solo utiliza el método Arrays.sort. Ahora la clasificación interna se realiza en Timosrt en lugar de merge sort, ya que las matrices adaptativas y estables toman comparaciones O (nlogn) en Merge sort, pero en Timsort, el peor caso es O (nlogn) y en el peor de los casos requiere almacenamiento n/2 en Timsort, pero no es en el caso de la técnica de clasificación Merge.
- 1. SortedList vs. SortedDictionary vs. Sort()
- 2. con respecto a la comparación de matrices en R
- 3. defn vs. let respecto a la descomposición
- 4. Clases con colecciones como propiedades vs. clases Heredar colecciones
- 5. HTTP vs Websockets con respecto a la sobrecarga
- 6. Hrefs vs JavaScript onclick (con respecto a Unobtrusive JavaScript)
- 7. $ PWD vs. pwd con respecto a la portabilidad
- 8. colecciones java vs mapa en colecciones framework
- 9. Transformación de matrices en contexto con colecciones paralelas
- 10. Rendimiento de qsort vs std :: sort?
- 11. Grails Plugin MongoDB: Colecciones Embedded vs Referencias
- 12. .Sort con PyMongo
- 13. tipo Haskell vs. newtype con respecto al tipo de seguridad
- 14. Scala matrices vs vectores
- 15. Con respecto a Google Safe Browsing API
- 16. Mensaje de error con respecto a IEnumerable.GetEnumerator()
- 17. confusión con respecto a la pereza
- 18. ¿Qué significa SCC, con respecto a LLVM?
- 19. problema con respecto a eventos en vivo
- 20. Con respecto a Java String Constant Pool
- 21. Hibernate: Criterios con colecciones
- 22. javascript objects vs matrices vs JSON
- 23. nulos vs colecciones vacías en hibernación
- 24. Lista frente a cola vs Conjunto de colecciones en Java
- 25. Tablas hash VS matrices asociativas
- 26. elasticsearch vs Solr respecto a la estructura de datos/consulta cuenta con
- 27. Nombramiento de variables para matrices/listas/colecciones - C#
- 28. Tipos, variables, matrices y colecciones de cierre de Java
- 29. Comparación de rendimiento de matriz de matrices vs matrices multidimensionales
- 30. Matrices estáticas VS. matrices dinámicas en C++ 11
La búsqueda binaria no es un algoritmo de ordenación. – SigmaX