【发布时间】:2011-07-04 01:50:17
【问题描述】:
Java 中是否有某种类似于 HashMap 的数据结构可以按键或值排序?在 PHP 中,您可以拥有可排序的关联数组。 Java中有这样的东西吗?
【问题讨论】:
标签: java sorting data-structures hashmap associative-array
Java 中是否有某种类似于 HashMap 的数据结构可以按键或值排序?在 PHP 中,您可以拥有可排序的关联数组。 Java中有这样的东西吗?
【问题讨论】:
标签: java sorting data-structures hashmap associative-array
SortedMap 仅按键排序
【讨论】:
HashMaps 几乎按照定义未排序;一个好的散列函数会产生看似随机的键分布。
如果您想在 Java 中使用按排序顺序存储其元素的 Map,请考虑查看由排序二叉搜索树支持的 TreeMap。
如果您想要可以按键或按值排序的东西,您可能正在寻找双向映射或“bimap”。 Java 的标准库中没有 on,我所知道的最接近的实现是 Google's BiMap。但是,正如 Pangea 指出的那样,它不支持按排序顺序排列的元素。不过,您只需使用两个TreeMaps,一个从键到值,一个从值到键,就可以轻松实现自己的实现。
希望这会有所帮助!
【讨论】: