内置在Java中存储预排序键值对的方法?

内置在Java中存储预排序键值对的方法?,java,arrays,hashtable,key-value,Java,Arrays,Hashtable,Key Value,我正在寻找一种方法来维护键值对的排序。它们按实际键值对之外的变量进行排序(以获得更好的UI)。我目前使用的是一个哈希表,但它不能维持排序=( Hashtable subscriptions=getUsersSubscriptions(用户); 有什么简单的方法可以让Java存储对吗?我能想到的最好的方法是使用两个关联的ArrayList(一个是Integer类型,另一个是String类型)。有人能想出更好的方法吗?SortedMap myMap=new TreeMap(); SortedMap

我正在寻找一种方法来维护键值对的排序。它们按实际键值对之外的变量进行排序(以获得更好的UI)。我目前使用的是一个哈希表,但它不能维持排序=(

Hashtable subscriptions=getUsersSubscriptions(用户);
有什么简单的方法可以让Java存储对吗?我能想到的最好的方法是使用两个关联的ArrayList(一个是Integer类型,另一个是String类型)。有人能想出更好的方法吗?

SortedMap myMap=new TreeMap();
SortedMap<Integer, String> myMap = new TreeMap<Integer,String>();
如果有自定义排序,请将实例传递给的构造函数。但要小心,因为使用不符合自然整数顺序的比较器会使事情无法理解和调试。

SortedMap myMap=new TreeMap();

如果您有自定义排序,请将实例传递给的构造函数。但要小心,因为使用不符合自然整数顺序的比较器会使事情无法理解和调试。

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


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

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

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

可以在这里使用。

可以在这里使用

有没有什么简单的方法可以让Java存储对

创建一个存储这两个属性的自定义类

它们按实际键值对之外的变量排序

为排序数据添加第三个属性

然后,您的类可以实现Comparable,以便根据此属性对数据进行所需排序

或者,您可以使用自定义比较器在排序数据字段上进行排序

现在,类实例可以存储在ArrayList中

有没有什么简单的方法可以让Java存储对

创建一个存储这两个属性的自定义类

它们按实际键值对之外的变量排序

为排序数据添加第三个属性

然后,您的类可以实现Comparable,以便根据此属性对数据进行所需排序

或者,您可以使用自定义比较器在排序数据字段上进行排序


现在,类实例可以存储在ArrayList中。

使用
Map
实现,因为
Hashtable
被认为是过时的。使用
Map
实现,因为
Hashtable
被认为是过时的。@Ridudel:谢谢您的编辑,但是您恢复了我的TreeSet->TreeMap typo:)@Ridudel:谢谢您的编辑,但是你恢复了我的树集->树映射错误:)
SortedMap<Integer, String> myMap = new TreeMap<Integer,String>();