Tengo una colección de grande número de objetos que están definidos por pares de nombre/valor. Necesito tener acceso rápido a cualquiera de sus valores y poder devolverlos ordenados alfabéticamente por nombre. Primero pensé que podría usar un HashMap para obtener acceso rápido. Pero no me dio ningún encargo. Decidí cambiar a LinkedHashSet.
El problema es que tengo que poder insertar Objetos nuevos en los lugares correctos de la lista, pero LinkedHashSet no permite eso. También necesito poder acceder a los Objetos por su índice y por su nombre.
Estaremos agradecidos por cualquier idea.¿Cómo puedo mantener un hashset ordenado alfabéticamente?
Respuesta
Puede utilizar la aplicación NavigableMap basado TreeMap
Un árbol Rojo-Negro. El mapa se ordena de acuerdo con el orden natural de sus claves, o mediante un comparador proporcionado en el tiempo de creación del mapa, según el constructor que se utilice.
Yo usaría un TreeSet que es un SortedSet. Debe definir su clase personalizada como Comparable en función del nombre y su colección siempre estará ordenada.
Nota: las colecciones ordenadas tienen un tiempo de acceso O (log N).
¿Has mirado TreeMap? Está basado en árboles Rojo-Negros que ayudan a mantener el orden, pero aún así brinda un acceso rápido.
Por qué no probar TreeSet. ¿Su lista no permite duplicados? Si es así, entonces el conjunto debería estar bien. Como se va a añadir cuerdas y esto implementa Comparador el conjunto se clasificarán automáticamente para usted
Si tuviera
Set<String> s = new TreeSet<String>();
s.add("B");
s.add("C");
s.add("A");
entonces el contenido del conjunto sería A, B, C
Un TreeMap
debe abordar sus requisitos. Si sus claves no son literales, utilice el Comparator
apropiado en el constructor TreeMap.
Puede utilizar Comparator ..
Collections.sort(yourCollection, new Comparator() {
public int compare(YourObject o1, YourObject o2) {
// put Comparesion according to your requirement
return AnyObject;
}
});
- 1. ¿Cómo puedo ordenar un NSMutableArray alfabéticamente?
- 2. ¿Cómo ordenar un NSArray alfabéticamente?
- 3. ¿Cómo puedo ordenar enum alfabéticamente en Java?
- 4. ¿Cómo puedo iterar sobre un conjunto/HashSet sin un iterador?
- 5. Mantener su javascript estructurado y ordenado (como programador de OO)
- 6. ¿Cómo puedo enumerar todos los archivos en un directorio ordenados alfabéticamente usando PHP?
- 7. ¿Cómo mantener un objeto/arreglo de Javascript ordenado al tiempo que se mantienen las búsquedas clave?
- 8. ¿Puedo ordenar las pestañas en Eclipse alfabéticamente?
- 9. HashSet
- 10. Cómo comparar 2 cadenas alfabéticamente
- 11. ¿HashSet no garantiza la clasificación?
- 12. Cómo crear un mapa ordenado en scala?
- 13. Ordenar argparse ayuda alfabéticamente
- 14. Definir: ¿Qué es un HashSet?
- 15. copia superficial de un hashset
- 16. Diccionario revertido ordenado?
- 17. Ordenando una lista alfabéticamente con un módulo
- 18. Modelando un árbol ordenado con neo4j
- 19. ¿PHP tiene un diccionario ordenado?
- 20. Ordenar JSON alfabéticamente
- 21. ¿Cómo puedo mantener ModelState con RedirectToAction?
- 22. En XAML, ¿cómo puedo mantener una elipse como un círculo?
- 23. ¿Cómo puedo escuchar un clic y mantener presionado en jQuery?
- 24. ¿Cómo puedo mantener mi aplicación Heroku privada?
- 25. Ordene HashMap alfabéticamente por valor
- 26. Autogrupo UITableView alfabéticamente
- 27. Cómo conseguir un subvector resuelto de un vector ordenado, rápido
- 28. ¿Cómo mantener un histograma dinámico?
- 29. consulta SQL ordenados alfabéticamente
- 30. ¿Cómo saber el siguiente carácter alfabéticamente?
¿Usted intentó 'TreeMap'? – Santosh