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

哪个Java数据对象用于多维范围匹配?

哪个Java数据对象用于多维范围匹配?,java,android,map,arraylist,treemap,Java,Android,Map,Arraylist,Treemap,项目背景: 我正在为java编写一个map tile overlay类,它可以使用gdal2tile.py tiles。基本上,我最终会得到数千个jpg文件,它们的文件结构如下 “缩放级别/X坐标/Y坐标” 坐标为整数,但不一定从0或1开始。 我将不得不搜索在一定范围内的瓷砖,以找出哪些我需要渲染 我的问题: 我尝试使用文件结构本身进行迭代,但速度非常慢(这并不奇怪)。 我尝试使用文件结构和.contains()的字符串的ArrayList进行迭代,但它似乎更慢(不太奇怪)。 最理想的情况是,我

项目背景: 我正在为java编写一个map tile overlay类,它可以使用gdal2tile.py tiles。基本上,我最终会得到数千个jpg文件,它们的文件结构如下 “缩放级别/X坐标/Y坐标” 坐标为整数,但不一定从0或1开始。 我将不得不搜索在一定范围内的瓷砖,以找出哪些我需要渲染

我的问题: 我尝试使用文件结构本身进行迭代,但速度非常慢(这并不奇怪)。 我尝试使用文件结构和.contains()的字符串的ArrayList进行迭代,但它似乎更慢(不太奇怪)。 最理想的情况是,我希望使用一个数据结构,让我在多个维度上选择一个范围,这样我就可以调用类似的东西

Tiles.getWhere(缩放级别、最小X、最大X、最小Y、最大Y)

我认为某种类型的集合或树映射是正确的选择,但我对Java的经验不足,无法确定,我不希望必须对许多不同的方法进行基准测试

我可以使用SQLite来做这件事,但这似乎太过分了

我的问题:
在多维约束条件下,检查数据集是否存在最有效的方法是什么?

考虑到你的问题,我可以找到三个方向,你可以将下一步的搜索目标指向这三个方向(这不是一个手把手的指南,而是一个开箱即用的开窍方法,为你所面临的瘫痪情况打开思路):

1)使用Java内置结构。是的,事实上,列表是搜索方法中最糟糕的情况。顾名思义,
地图
,对于地图来说要方便得多。它不仅是名称,而且与
列表
相比,对
映射
进行索引的时间要少得多。您可以将地图想象成一个立方体,如果使用
List
搜索地图时,您必须处理其中大约一半的点,并且可能只有一个狭窄的层。差别很大。因此,我在这里的答案是:
Map
是一个指向正确方向的关键词(假设您在阅读了我的答案后想这样做)

2)使用地图服务器解决方案。这可能离您的方法太远了,但整个框架都是为解决您的问题而设计的。一个例子是。它为整个问题提供了现成的解决方案。这是一个稳定的解决方案,可以解决您手上可能存在的一个大问题:从源代码向用户显示地图

3)按照您使用的GDAL框架,您可以选择稍有不同的py文件,如和-哇-您手中有一个搜索的可能性!这个特殊的搜索引擎通过一个中心点和一个距离进行搜索,但会完成您需要的工作=)


有一个起点,我将如何做到这一点。这有什么用吗?

考虑到你的问题,我可以找到你下一步搜索的三个方向(这不是一个手把手的指南,而是一个开箱即用的开窍方法,为你所面临的困顿局面开窍):

1)使用Java内置结构。是的,事实上,列表是搜索方法中最糟糕的情况。顾名思义,
地图
,对于地图来说要方便得多。它不仅是名称,而且与
列表
相比,对
映射
进行索引的时间要少得多。您可以将地图想象成一个立方体,如果使用
List
搜索地图时,您必须处理其中大约一半的点,并且可能只有一个狭窄的层。差别很大。因此,我在这里的答案是:
Map
是一个指向正确方向的关键词(假设您在阅读了我的答案后想这样做)

2)使用地图服务器解决方案。这可能离您的方法太远了,但整个框架都是为解决您的问题而设计的。一个例子是。它为整个问题提供了现成的解决方案。这是一个稳定的解决方案,可以解决您手上可能存在的一个大问题:从源代码向用户显示地图

3)按照您使用的GDAL框架,您可以选择稍有不同的py文件,如和-哇-您手中有一个搜索的可能性!这个特殊的搜索引擎通过一个中心点和一个距离进行搜索,但会完成您需要的工作=)


有一个起点,我将如何做到这一点。这有什么用吗?

对我来说,听起来你在寻找类似间隔树的东西

我在过去已经实现了其中的一个,但只是在一个方面。维基百科参考文献提到了更多维度的扩展


保罗

在我看来,你似乎在寻找一种类似间隔树的东西

我在过去已经实现了其中的一个,但只是在一个方面。维基百科参考文献提到了更多维度的扩展


Paul

可能是您正在寻找具有多个键的地图

Commons collections提供具有多个查找键的映射:


映射保证O(1)插入和O(1)选择计时

可能是您正在寻找具有多个关键点的地图

Commons collections提供具有多个查找键的映射:


映射保证O(1)插入和O(1)选择计时

是的,这是完美的-它满足了我的需要,也足够灵活,可以用于以后的项目。非常感谢。是的,这是完美的-它满足了我的需要,也足够灵活,可以用于以后的项目。非常感谢。