que tienen una variable lista creada de esta manera:ordenar una lista de Mapa <String, String>
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
En mi aplicación para Android, esta lista se rellena.
sólo un ejemplo:
Map<String, String> map1 = new HashMap<String, String>();
map.put("name", "Josh");
...
Map<String, String> map2 = new HashMap<String, String>();
map.put("name", "Anna");
...
Map<String, String> map3 = new HashMap<String, String>();
map.put("name", "Bernie");
...
list.add(map1);
list.add(map2);
list.add(map3);
estoy usando list
para mostrar los resultados en un ListView
extendiendo BaseAdapter
e implementación de los diversos métodos.
Mi problema: Necesito clasificar list
en orden alfabético basado en el mapa de teclado nombre
Pregunta: ¿Cuál es una manera sencilla de solucionar list
en orden alfabético basado en clave el nombre del mapa?
Parece que no puedo entender esto. He extraído cada nombre de cada Map
en una matriz String
, y lo he ordenado (Arrays.sort(strArray);
). Pero eso no quiere preservar los demás datos de cada Map
, así que no estoy muy seguro de cómo puedo conservar los otros valores asignados
@DLK, y saber cómo escribir un comparador personalizado es justo lo que binnyb está descubriendo. –
Tanto las respuestas de @Jon Skeet como de @JB Nizet han señalado correctamente que 'Map' es probablemente una mala opción para sus registros. Una clase personalizada con atributos/getters/setters sería mejor. ¿Por qué? 1) robustez/tipo de seguridad, 2) uso de memoria, 3) rendimiento, 4) código más simple. –
gracias por la sugerencia, voy a buscar cambiar cómo lo tengo configurado. – binnyb