У меня есть структура данных, хранящаяся на карте с мультимапом в качестве значений, которые я хочу сортировать по нескольким атрибутам.Java три атрибута, лучший способ сохранить + сортировать
Фон: У меня есть JavaFX GridPane, в котором я хочу отображать некоторые вещи в упорядоченной форме. Поэтому для каждой точки в GridPane у меня есть некоторые Элементы с одной + строкой, связанной с ними. Я хочу отображать Элементы на основе алфавитного порядка строк.
Я следующее сейчас:
Map<Coordinate, Multimap<Element, String>> myMap = new HashMap<Coordinate, Multimap<Element, String>>();
Но для меня это не понятно, как сделать сортировку. Как вы видите, используя Multimap, один элемент может иметь несколько строк. В конце я хочу заказать координату (x и y) и атрибут String для каждой координаты. Как это сделать? Или кто-нибудь лучше знает, как хранить эти атрибуты?
Edit: Координировать сортировки легко и не проблема:
List<Coordinate> keys = new ArrayList<Coordinate>(myMap.keySet());
Comparator<Coordinate> comparator = Comparator.comparing(Coordinate::getX).thenComparing(Coordinate::getY);
Collections.sort(keys, comparator);
я только что объяснил это сделать моя проблема ясна. Основная проблема: как отсортировать строки со связанными элементами для каждой координаты. Или «лучшая» структура для сохранения атрибутов.
Спасибо!
Возможный дубликат [Использование компаратора для создания пользовательского сортировки] (http://stackoverflow.com/questions/5245093/using-comparator-to-make-custom-sort) – Idos
Сортировка скважин не должна быть сложной , (Сопоставимый интерфейс). Второе немного сложнее, потому что вам придется сортировать по значению, и вам нужно будет решить, какая строка для мультимапа, которую вы используете для сравнения – ParkerHalo