« Return to Thread: [ruby-list:43857] Hashへの生成順は保障されないのか?

[ruby-list:43924] Re: Hashへの生成順は保障されないのか?

by Yoshiyuki Uehara :: Rate this Message:

Reply to Author | View in Thread

植原といいます。

# いまさらですが…

> ついでに言うとJavaでは
> ・順序を保存しないHash
> ・順序を保存する機能付きHash
> は別々の物として実装するでしょうね.Hashはあくまでハッシュ表.
> ハッシュ表と異なる物には異なる名前の異なるクラスを用意すると思います.
> http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/SortedMap.html

Java ではインターフェースとして

  Map: キー、値のペアを保持する
  SortedMap: キーがソートされた Map

の2つがありますが、実装には下記の3つがあります。

  HashMap: Mapの実装。キーの順序を保証しない。
  TreeMap: SortedMapの実装。キーがソートされている。
  LinkedHashMap: Mapの実装(HashMapのサブクラス)。
                 予測可能な繰り返し順序(キーの追加順)を持つ。

http://www.hellohiro.com/map.htm
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/util/LinkedHashMap.html

個人的には Java の開発で LinkedHashMap を使用することは結構あります。
# テストケースの expected 記述や、Web アプリで select の元データなど。


 « Return to Thread: [ruby-list:43857] Hashへの生成順は保障されないのか?