0
我有一個數據結構存儲在一個帶有多圖的地圖中,作爲我想按多個屬性排序的值。Java三個屬性,最佳存儲方式+排序
背景:我有一個JavaFX GridPane,我希望以有序的形式顯示一些東西。因此,對於GridPane中的每個點,我都有一些與它們相關的元素。我想根據字符串的字母順序來顯示元素。
我見現在以下:
Map<Coordinate, Multimap<Element, String>> myMap = new HashMap<Coordinate, Multimap<Element, String>>();
但對我來說是不明確的,如何做排序。正如您通過使用Multimap所看到的,一個元素可以有多個字符串。最後,我想通過Coordinate(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);
我剛纔解釋它,使我的問題清楚。主要問題是:如何爲每個座標的相關元素排序字符串。或者是一個「更好」的結構來保存屬性。
謝謝!
可能使用[使用比較器進行自定義排序]的副本(http://stackoverflow.com/questions/5245093/using-comparator-to-make-custom-sort) – Idos
排序好的座標不應該很難。 (可比較的界面)。第二個有點難,因爲你必須按價值排序,並且你必須決定你用來比較的multimap的哪個字符串值 – ParkerHalo