Java树映射替代方案
我需要一个数据结构,具有快速插入,快速检索,并可以按顺序返回。这听起来像一个树映射,但是我需要元素的顺序是基于创建时间的,而不是基于我存储的键的顺序 换句话说,我仍然希望能够基于一个键(一个字符串)插入和检索项目,但我希望按照创建时间(一个日期)的顺序返回项目。当然,我希望这是尽可能快,而不是必须创建自己的数据类型Java树映射替代方案,java,data-structures,Java,Data Structures,我需要一个数据结构,具有快速插入,快速检索,并可以按顺序返回。这听起来像一个树映射,但是我需要元素的顺序是基于创建时间的,而不是基于我存储的键的顺序 换句话说,我仍然希望能够基于一个键(一个字符串)插入和检索项目,但我希望按照创建时间(一个日期)的顺序返回项目。当然,我希望这是尽可能快,而不是必须创建自己的数据类型 树映射在这种情况下不起作用,因为它使用键进行插入和检索以及对结果排序。是否还有另一种标准数据类型可以满足我的要求?听起来你想要一个。听起来你想要一个。使用地图和树集 一个仅用于存储键
树映射在这种情况下不起作用,因为它使用键进行插入和检索以及对结果排序。是否还有另一种标准数据类型可以满足我的要求?听起来你想要一个。听起来你想要一个。使用地图和树集 一个仅用于存储键/值对的映射。它不必是树形图。因为你没有用那张地图来排序 树集用于排序 您始终可以在自己创建的一个包装器映射类中包装2个集合实例。如果你真的需要它看起来像一张地图。确保您选择的比较器使用创建日期
其他人建议用LinkedHashMap。但我认为你不想维持秩序。但是,您希望它通过某种类型的比较器(可能是Object.equals)进行排序。使用映射和树集 一个仅用于存储键/值对的映射。它不必是树形图。因为你没有用那张地图来排序 树集用于排序 您始终可以在自己创建的一个包装器映射类中包装2个集合实例。如果你真的需要它看起来像一张地图。确保您选择的比较器使用创建日期
其他人建议用LinkedHashMap。但我认为你不想维持秩序。但是,您希望它通过某种类型的比较器排序,可能是Object.equals。如果我正确理解您的问题,您可以创建自己的比较器,并使用public TreeMapComparator如果我正确理解您的问题,您可以创建自己的比较器,并使用公共TreMePialStudio,为什么不通过实现可比性来实现CaseReto方法,以便考虑日期,然后使用常规的TeMeAP实现?也许我误解了您的注释,但是树图的构造函数与密钥的类型没有可比性。值我的创建时间是在值对象中,为什么你不通过实现可比性来实现CaseReto方法,以便考虑日期,然后使用常规的TeMeAP实现?也许我误解了你的注释,但是树图的构造函数具有可比性,它的键值不是我创建时间的值。在值object中,构造函数只接受键类型的比较器。创建时间是值对象的一部分,而不是键,因此它不起作用。构造函数只接受键类型的比较器。创建时间是值对象的一部分,而不是键,因此它不起作用。