Java三个属性,最好的存储+排序方式

Java three attributes, best way to store + sort

我有一个存储在地图中的数据结构,其中有一个多图作为我想按多个属性排序的值。

背景:我有一个 JavaFX GridPane,我想在其中以有序的形式显示一些东西。因此,对于 GridPane 中的每个点,我都有一些元素与 one+ String 相关。我想根据字符串的字母顺序显示元素。

我现在有以下内容:

Map<Coordinate, Multimap<Element, String>> myMap = new HashMap<Coordinate, Multimap<Element, String>>();

但我不清楚如何进行排序。正如您通过 Multimap 的用法所看到的,一个 Element 可以有多个 String。最后,我想按坐标(x 和 y)和每个坐标的 String 属性进行排序。怎么做?或者有没有人知道如何存储这些属性?

编辑:坐标排序很简单,问题不大:

List<Coordinate> keys = new ArrayList<Coordinate>(myMap.keySet());
Comparator<Coordinate> comparator = Comparator.comparing(Coordinate::getX).thenComparing(Coordinate::getY);
Collections.sort(keys, comparator);

我刚才已经解释清楚了我的问题。主要问题是:如何为每个坐标对具有相关元素的字符串进行排序。或者一个"better"结构来保存属性。

谢谢!

该死的。可以自己回答这个问题。我只是将 String 作为键,将 Element 作为值。然后使用

ListMultimap<String, Element> lmm = Multimaps.newListMultimap(
new TreeMap<>(), ArrayList::new);

按照建议 here。 Et voilà...对于每个坐标,内部地图按 String 属性排序。