Я десериализовал некоторый Json и поместил его в модель со следующей структурой:
Модель:
import java.time.LocalDate;
public class MyClass implements Serializable {
String name;
LocalDate date;
// more attributes
public MyClass(...) {
// ...
}
// getters & setters
}
Затем я поместил этот класс в ArrayList:List<MyClass> list = new ArrayList<>()
.Список выглядит следующим образом:
[
{
"name": "peter",
"date": {
"year": "1984",
"month": "10",
"day": "17"
}
},
{
"name": "steve",
"date": {
"year": "1976",
"month": "05",
"day": "04"
}
}
]
Я знаю, хочу отсортировать list
по дате, так что Steve
предшествует Peter
.
Мой подход таков:
Comparator<Map<String, String>> mapComparator = (Map<String, String> m1, Map<String, String> m2) -> m1.get("date").compareTo(m2.get("date"));
Collections.sort(list, mapComparator);
Но там написано:
Not suitable method found for sort(List<MyClass>,Comparator<Map<String,String>>)
Обратите внимание, что date
имеет тип LocalDate
, поэтому «объектная структура» date
в ArrayList производится Java автоматически.