哈希映射,哈希集,树图,树集 - 可供选择

时间:2015-03-23 14:10:58

标签: java data-structures

我试图证明我是否在一组场景中使用最合适的数据结构。

第一种情况是房地产经纪人以不同的价格出售房产,没有价格重复。客户选择一系列价格和价格。获取该范围内的属性列表。

要存储属性数据的集合,我会选择TreeSet。由于没有财产具有相同的价格,我可以拥有:价格(关键)和价值(房产详情)。这将适用于TreeSet,因为没有重复的条目,TreeSet可以按自然顺序对价格进行排序。此外,该场景的主要操作是搜索/包含,其将采用O(log n)。虽然有更快的搜索/包含操作,例如HashMap,我需要订购。如果我需要插入或删除条目,我相信这些操作也是O(log n)。

要返回价格范围内的属性列表,我想我可以使用headSet()方法吗?

但是,我已经读过一些线程,我可以将它们存储为HashMap并从HashMap创建一个TreeSet;是否值得这样做?

1 个答案:

答案 0 :(得分:0)

您需要一个有序集才能提供此类查询。因此,树形结构比哈希映射更适合您的需求。但是,等效于HashMap的是TreeMap,而不是TreeSet - 您需要键和值之间的映射。至于范围操作,有一种更适合您需求的方法 - subMap