内置的方式来存储Java中预先排序的键值对?

Gar*_*ett 1 java arrays hashtable key-value

我正在寻找一种方法来维护我的键值对的排序.它们按实际键值对之外的变量排序(用于更好的UI).我目前正在使用Hashtable,但不保持排序=(

Hashtable<Integer, String> subscriptions = getUsersSubscriptions(user);
Run Code Online (Sandbox Code Playgroud)

是否有一些简单的方法让Java允许一个商店配对?我能想到的最好的想法是使用2个关联的ArrayLists(一个是Integer类型,另一个是String类型).有人能想到更好的东西吗?

Zac*_*h L 8

如果您的键值对已经排序,LinkedHashMap将保持插入顺序.

换句话说,返回的键map.keySet()将按照您将它们放入地图的确切顺序.


Dan*_*iel 5

SortedMap<Integer, String> myMap = new TreeMap<Integer,String>();
Run Code Online (Sandbox Code Playgroud)

如果您有自定义排序,Comparator请将实例传递给.的构造函数TreeMap.但要小心这样做,因为使用不能很好地处理自然整数顺序的比较器会使事情无法理解和调试.