我需要一个快速插入,快速检索的数据结构,并且可以按顺序返回。这听起来像树图,但我需要元素的顺序基于创建时间而不是我存储的键的顺序。
换句话说,我仍然希望能够根据键(这是一个字符串)插入和检索,但我想按照创建时间(这是一个日期)的顺序返回项目。当然,我希望这个尽可能快,而不是必须创建自己的数据类型。
树形图在这种情况下不起作用,因为它使用插入和检索AND键来排序结果。是否有其他标准数据类型可以满足我的要求?
答案 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)
构造函数。