0

私はHashTablebyを実装しようとしています

HashTable ht=new HashTable(); 

1つのxmlファイルで値を入れています。

問題は、ハッシュテーブルの値を出力するときに、同じ順序ではなく、昇順で表示されることです。

仮定:-キーがそれぞれの値を持つ[US、AU、CA]の場合、file(xml)に表示されるのと同じ順序で取得しようとしていますが、[AU、CA、US]のようになります。それぞれの値があります。

どんな助けでもいただければ幸いです。

よろしく、アーシャッド。

4

3 に答える 3

8

問題は、ハッシュテーブルの値を出力するときに、同じ順序ではなく、昇順で表示されることです。

必ずしもそうとは限りません-不特定の順序になります。の順序に依存してはなりませHashtable

挿入順序を保持するマップが必要な場合は、を使用しますLinkedHashMap。(そもそもあなたはほぼ間違いなく望んHashtableでいませんでしたがHashMap。)

内の要素の順序に関するドキュメントから追加するにはHashMap

このクラスは、マップの順序を保証するものではありません。特に、順序が時間の経過とともに一定に保たれることを保証するものではありません。

于 2012-06-21T07:00:33.113 に答える
0

そうです、ハッシュテーブルは値を追加した順序を気にしません。

おそらく、LinkedHashMap または LinkedList を使用する必要があります。

于 2012-06-21T07:03:53.497 に答える
-2

のキーはHashTable、キーのクラスの自然順序に従ってソートされます。参照Comparable

キーは を実装する必要があるComparableため、キーは文字列であるため、それを行います。キーの順序付けの動作は、その方法でのみ制御されます。

于 2012-06-21T07:10:14.733 に答える