我正在尝试通过
实施HashTable
HashTable ht=new HashTable();
我在其中通过一个xml文件将值赋予它。
问题在于,当我打印哈希表的值时,它的顺序不一样,它按升序排列。
假设: - 如果密钥是[US,AU,CA]并且各自具有相应的值,那么我试图按照它们在文件(xml)中出现的顺序获得它们,但它的出现就像[AU,CA] ,美国]有各自的价值观。
任何帮助都将不胜感激。
此致 艾尔沙德。
答案 0 :(得分:9)
问题是,当我打印哈希表的值时,它的顺序不一样,它按升序排列。
不一定 - 它会以某种未指定的顺序出现。您必须不依赖Hashtable
。
如果您想要一张保留广告订单的地图,请使用LinkedHashMap
。 (你几乎肯定不想首先Hashtable
,但是HashMap
。)
从documentation添加有关HashMap
此课程不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变。
答案 1 :(得分:1)
这就是散列表的正确性并不介意您添加值的顺序。
也许你应该使用LinkedHashMap或LinkedList。
答案 2 :(得分:-2)
HashTable
的键根据键类的自然顺序排序。参考Comparable
。
密钥需要实现Comparable
,因此,由于您的密钥是字符串,他们会这样做。键排序的行为将仅以这种方式控制。