繁体   English   中英

哈希图,哈希集,树图,树集-选择

[英]hash map, hash set, tree map, tree set - which to choose

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

第一种情况是房地产经纪人以不同的价格出售物业,没有重复的价格。 客户选择价格范围并获取该范围内的物业清单。

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

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

但是,我已经阅读了一些可以存储为HashMap并可以从HashMap创建TreeSet的线程。 这样做值得吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM