我有一個數據類如下:JAVA:SomeStructure <E>使其按另一類型T排序?
class MyData { private UUID id; private String data1; private String data2}
我它的實例存儲在一個地圖:
private Map<UUID, MyData> myData;
正如我們所知道的,我可以通過UUID得到MyData的實例:
MyData instance = myData.get(UUID);
但我也需要通過索引獲取MyData實例。更重要的是,索引按MyData.data1字段排序。所以我需要一個新的數據結構來存儲UUID根據索引順序,也許是這樣的:
private SomeStructure<UUID> myDataIndex;
我想這是SomeStructure
類。它應該有一個公開的方法,如:
public UUID getUuidByIndex(int index);
而且,它應該通過MyData.data1字段排序UUID元素。
而且,每當我將物品放入private Map<UUID, MyData> myData
時,物品的UUID也會添加到private SomeStructure<UUID> myDataIndex
。我認爲這是性能方面的考慮,當我通過索引獲取元素時,不會生成ArrayList或其他東西。
對此SomeStructure
有任何意見?我會更多地瞭解擴展或實現已知JAVA數據結構的方法。當然,完全定製的結構也受到高度讚賞。
爲了讓你完全明白我的問題,我想說明我的情況:
爲什麼我有地圖?我想通過UUID獲取數據。
爲什麼我要SomeStructure?我想通過索引來獲取數據。
爲了簡單起見:我想通過兩種不同的方式迭代我的數據。
非常感謝!
我刪除了我的答案,但我仍然認爲答案可能是使用[如何對Java中的值排序Map?](http:// stackoverflow。 COM /問題/ 109383 /如何到排序-A-映射鍵 - 值 - 上的值,在Java的)。 –
2015-03-02 13:13:12