Java TreeMap替代方案

时间:2011-03-18 20:03:25

标签: java data-structures

我需要一个快速插入,快速检索的数据结构,并且可以按顺序返回。这听起来像树图,但我需要元素的顺序基于创建时间而不是我存储的键的顺序。

换句话说,我仍然希望能够根据键(这是一个字符串)插入和检索,但我想按照创建时间(这是一个日期)的顺序返回项目。当然,我希望这个尽可能快,而不是必须创建自己的数据类型。

树形图在这种情况下不起作用,因为它使用插入和检索AND键来排序结果。是否有其他标准数据类型可以满足我的要求?

3 个答案:

答案 0 :(得分:3)

听起来像是想要LinkedHashMap

答案 1 :(得分:1)

使用Map和TreeSet吗?

一张地图< String,Object>只是为了存储键/值对。它不一定是TreeMap。因为您没有使用该地图进行排序。

TreeSet< Object>用于排序。

您始终可以在自己创建的一个包装器Map类中包装2个集合实例。如果你真的需要它看起来像一张地图。确保您选择的Comparator使用创建日期。

其他人建议使用LinkedHashMap。但我认为你不想维持“插入订单”。但相反,你希望它通过某种类型的比较器(可能是Object.equals)进行排序。

答案 2 :(得分:0)

如果我正确理解了您的问题,您可以创建自己的Comparator并使用public TreeMap(Comparator<? super K> comparator)构造函数。