Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 - Fatal编程技术网

Java 如何存储间隔和按值查找间隔?

Java 如何存储间隔和按值查找间隔?,java,Java,我有一个列表,其中有三个对象,假设将其命名为数据 数据[0]的值为0-6 数据[1]有6-13条 数据[2]有13-23条 我有一个方法,它有两个参数,一个是starttime,另一个是endtime。 我的要求是,如果输入值介于第一个对象之间,那么此方法将返回第一个对象。如果输入值位于前两个对象之间,则该方法应返回前两个对象。我怎样才能做到这一点。有人能告诉我吗?假设您没有重叠的范围,并且这些范围是连续的,如您的示例所示,否则您需要自己实现一些功能: 例如,可以使用存储开始或范围及其值 Tre

我有一个列表,其中有三个对象,假设将其命名为数据

数据[0]的值为0-6 数据[1]有6-13条 数据[2]有13-23条 我有一个方法,它有两个参数,一个是starttime,另一个是endtime。 我的要求是,如果输入值介于第一个对象之间,那么此方法将返回第一个对象。如果输入值位于前两个对象之间,则该方法应返回前两个对象。我怎样才能做到这一点。有人能告诉我吗?

假设您没有重叠的范围,并且这些范围是连续的,如您的示例所示,否则您需要自己实现一些功能:

例如,可以使用存储开始或范围及其值

TreeMap<Int, Object> map = new TreeMap<Int, Object>();
map.put(0, obj1);
map.put(6, obj2);
map.put(13, obj3);
您可以添加一个检查,查看键是否小于0或大于23,并且不检查映射中的这些值

对于您的问题,您可以同时检查starttime和endtime,查看是否得到相同的对象。

假设您没有重叠的范围,并且这些范围是连续的,如示例所示,否则您需要自己实现:

例如,可以使用存储开始或范围及其值

TreeMap<Int, Object> map = new TreeMap<Int, Object>();
map.put(0, obj1);
map.put(6, obj2);
map.put(13, obj3);
您可以添加一个检查,查看键是否小于0或大于23,并且不检查映射中的这些值


对于您的问题,您可以同时检查starttime和endtime,看看是否得到相同的对象。

刺伤查询?关于效率有什么要求吗?是的。搜索应该是高效的。如果我没记错的话,区间树可以让你高效地进行搜索。有多少范围?它们能重叠很多次而不是两次吗?关于效率有什么要求吗?是的。搜索应该是高效的。如果我没记错的话,区间树可以让你高效地进行搜索。有多少范围?如果这些范围形成一个连续的光谱,或者只在两端重叠,这是一个可接受的解决方案。如果范围可以重叠很多次,那么情况就完全不同了。我同意,根据他的例子写道。如果范围形成一个连续的光谱,或者只在两端重叠,这是一个可接受的解决方案。如果范围可以重叠很多次,那么情况就完全不同了。我同意,他根据自己的例子写道。