У меня есть код вроде этого, я пытаюсь сортировать значение из списка карты по ключевому слову, указанному в sortby. Код ниже:Convert Map <> to 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());
}
, но он не может сравниться с использованием компаратора, поскольку несовместимые типы данных. Как я могу конвертировать Map<>
в Map<String,String>
или любое другое предложение, чтобы компаратор мог сравнить все типы данных?
почему вы просто don't сделать начальный '' List
, потому что вход для карты не всегда Строка –
Это то, что происходит, когда вы используете необработанные типы. – bcsb1001