Ich habe einen Code wie diesen, ich versuche, den Wert aus der Liste der Map mit dem in sortby angegebenen Schlüssel zu sortieren. Der Code ist unten:Konvertieren von Map <> zu Map <String, String>
final String sortby = "first";
List<Map> lm = new ArrayList<Map>();
Map m = new HashMap();
m.put("id", "eka");
m.put("first", "ek");
m.put("last", "a");
lm.add(m);
m = new HashMap();
m.put("id", "adit");
m.put("first", "adi");
m.put("last", "t");
lm.add(m);
for(Object M : lm){
System.out.println(M.toString());
}
Comparator<Map<String,String>> mapComparator = new Comparator<Map<String,String>>() {
public int compare(Map<String,String> m1, Map<String,String> m2) {
return m1.get(sortby).compareTo(m2.get(sortby));
}
};
Collections.sort(lm, mapComparator);
for(Object M : lm){
System.out.println(M.toString());
}
aber es kann nicht Vergleicher vergleichen, weil inkompatible Datentypen. Wie kann ich Map<>
in Map<String,String>
oder einen anderen Vorschlag umwandeln, damit der Vergleicher alle Datentypen vergleichen kann?
warum machst du nicht einfach die anfängliche 'Liste
, da die Eingabe für die Zuordnung nicht immer Zeichenfolge ist –
Dies geschieht bei der Verwendung von Rohtypen. – bcsb1001