У меня есть TreeMap
, и я хочу сортировать ключи на основе собственного правила. Это, как я получить ключи:Сортировка TreeMap на основе собственного правила
SharedPreferences pref = context.getSharedPreferences("myPrefs2",
MODE_PRIVATE);
TreeMap<String, ?> keys = new TreeMap<String, Object>(pref.getAll());
Как вы можете видеть, что я получить ключи от SharedPreferences
. Клавиши поставляются в следующем порядке: Yesterday
, Older
, Today
.
Я хочу выполнить следующие действия от Today
до Older
. So: Today
, Yesterday
, Older
.
Я пытался что-то вроде этого:
SharedPreferences pref = context.getSharedPreferences("myPrefs2",
MODE_PRIVATE);
TreeMap<String, ?> keys = new TreeMap<String, Object>(pref.getAll()) {
public int compare(String o1, String o2) {
// Here the return based on our own rule
}
};
Но я не знаю, как определить, что правила, и я не уверен, если я правильно использовать .
Есть ли возможность сортировать TreeMap
по правилу, как я описал выше?
Я получаю эту ошибку: 'Конструктор TreeMap < String, Object> (Карта, Comparator ) не определена' в строке, где вызывается 'new TreeMap'. –
user2784435
Приношу свои извинения.По какой-то причине я думал, что у TreeMap есть конструктор, которого нет. Я отредактировал свой ответ; пожалуйста, попробуйте снова. –
Спасибо! Для сравнения я использую это: 'final List definedOrder = Arrays.asList (« Сегодня »,« Вчера »,« Старые »);' и в функции сравнения: 'return Integer.valueOf (определеноOrder.indexOf (o1)) .compareTo (Integer.valueOf (definedOrder.indexOf (о2))); ' –
user2784435