Вот в чем дело:
- У меня есть класс, который представляет, скажем, Person с именем, которое является строкой.
- Также у меня есть компаратор (), который реализует интерфейс Comparator для Person.
Код: Выделить всё
MyComparator
.
В Comparator у меня есть метод int Compare (Person p1, Person p2), который написан следующим образом:
Код: Выделить всё
public int compare (Person personOne, Person personTwo) {
if (personsMap.get(personOne)>personsMap.get(personTwo)) {
return 1;
} else if (personsMap.get(personOne)
return -1;
} else {
return 0;
}
Код: Выделить всё
public static void main (String[] args) {
Person p1 = new Person ("Willy");
Person p2 = new Person ("Billy");
Person p3 = new Person ("Dilly");
Map
t = new HashMap();
t.put(p1,12);
t.put(p2,2);
t.put(p3,100);
List pl = new Arrays.asList(p1,p2,p3);
Collections.sort(pl, new MyComparator(t));
}
Код: Выделить всё
if (personsMap.get(p1)>personsMap.get(p2))
Подробнее здесь: https://stackoverflow.com/questions/374 ... its-values
Мобильная версия