Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java树映射替代方案_Java_Data Structures - Fatal编程技术网

Java树映射替代方案

Java树映射替代方案,java,data-structures,Java,Data Structures,我需要一个数据结构,具有快速插入,快速检索,并可以按顺序返回。这听起来像一个树映射,但是我需要元素的顺序是基于创建时间的,而不是基于我存储的键的顺序 换句话说,我仍然希望能够基于一个键(一个字符串)插入和检索项目,但我希望按照创建时间(一个日期)的顺序返回项目。当然,我希望这是尽可能快,而不是必须创建自己的数据类型 树映射在这种情况下不起作用,因为它使用键进行插入和检索以及对结果排序。是否还有另一种标准数据类型可以满足我的要求?听起来你想要一个。听起来你想要一个。使用地图和树集 一个仅用于存储键

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

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


树映射在这种情况下不起作用,因为它使用键进行插入和检索以及对结果排序。是否还有另一种标准数据类型可以满足我的要求?

听起来你想要一个。

听起来你想要一个。

使用地图和树集

一个仅用于存储键/值对的映射。它不必是树形图。因为你没有用那张地图来排序

树集用于排序

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


其他人建议用LinkedHashMap。但我认为你不想维持秩序。但是,您希望它通过某种类型的比较器(可能是Object.equals)进行排序。

使用映射和树集

一个仅用于存储键/值对的映射。它不必是树形图。因为你没有用那张地图来排序

树集用于排序

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


其他人建议用LinkedHashMap。但我认为你不想维持秩序。但是,您希望它通过某种类型的比较器排序,可能是Object.equals。

如果我正确理解您的问题,您可以创建自己的比较器,并使用public TreeMapComparator如果我正确理解您的问题,您可以创建自己的比较器,并使用公共TreMePialStudio,为什么不通过实现可比性来实现CaseReto方法,以便考虑日期,然后使用常规的TeMeAP实现?也许我误解了您的注释,但是树图的构造函数与密钥的类型没有可比性。值我的创建时间是在值对象中,为什么你不通过实现可比性来实现CaseReto方法,以便考虑日期,然后使用常规的TeMeAP实现?也许我误解了你的注释,但是树图的构造函数具有可比性,它的键值不是我创建时间的值。在值object中,构造函数只接受键类型的比较器。创建时间是值对象的一部分,而不是键,因此它不起作用。构造函数只接受键类型的比较器。创建时间是值对象的一部分,而不是键,因此它不起作用。