哈希表数据排序

时间:2012-06-21 06:58:56

标签: java hashtable

我正在尝试通过

实施HashTable
HashTable ht=new HashTable(); 

我在其中通过一个xml文件将值赋予它。

问题在于,当我打印哈希表的值时,它的顺序不一样,它按升序排列。

假设: - 如果密钥是[US,AU,CA]并且各自具有相应的值,那么我试图按照它们在文件(xml)中出现的顺序获得它们,但它的出现就像[AU,CA] ,美国]有各自的价值观。

任何帮助都将不胜感激。

此致 艾尔沙德。

3 个答案:

答案 0 :(得分:9)

  

问题是,当我打印哈希表的值时,它的顺序不一样,它按升序排列。

不一定 - 它会以某种未指定的顺序出现。您必须依赖Hashtable

的顺序

如果您想要一张保留广告订单的地图,请使用LinkedHashMap。 (你几乎肯定不想首先Hashtable,但是HashMap。)

documentation添加有关HashMap

中元素排序的内容
  

此课程不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。

答案 1 :(得分:1)

这就是散列表的正确性并不介意您添加值的顺序。

也许你应该使用LinkedHashMap或LinkedList。

答案 2 :(得分:-2)

HashTable的键根据键类的自然顺序排序。参考Comparable

密钥需要实现Comparable,因此,由于您的密钥是字符串,他们会这样做。键排序的行为将仅以这种方式控制。