Вы делаете Comparator<ClassYouWantToSort>
. Затем Comparator сравнивает поле, по которому вы хотите отсортировать.
Когда вы создаете TreeMap
, вы создаете TreeMap<ClassYouWantToSort>
и передаете Comparator
в качестве аргумента. Затем, когда вы вставляете объекты типа ClassYouWantToSort
, TreeMap
использует ваш Comparator
для их правильной сортировки.
РЕДАКТИРОВАТЬ: Как отмечает Адамски, вы также можете сделать ClassYouWantToSort
сам Comparable
. Преимущество состоит в том, что у вас меньше классов для работы, код проще и ClassYouWantToSort
получает удобный порядок по умолчанию. Недостатком является то, что ClassYouWantToSort
может не иметь единственного очевидного порядка, и поэтому вам все равно придется реализовать Comparables
для других ситуаций. Вы также не сможете изменить ClassYouWantToSort
.
EDIT2: Если у вас есть только набор объектов, которые вы бросаете в коллекцию, и это не Map
(т.е. это не отображение из одного набора объектов в другой), тогда вам нужно TreeSet
не TreeMap
.