Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 使用另一个arraylist对arraylist进行排序_Java_Android_Arraylist - Fatal编程技术网

Java 使用另一个arraylist对arraylist进行排序

Java 使用另一个arraylist对arraylist进行排序,java,android,arraylist,Java,Android,Arraylist,我有一张标有lat、long和地点名称的桌子。 我计算了距离当前位置最近的距离,并将距离添加到一个arraylist中,然后按升序排序。 接下来,我在其他arraylist中添加了名称。 现在我需要使用与其他列表的距离按顺序设置名称。 怎么做?为什么不直接用距离作为键,名称作为值来构造一个。这样,它们将始终按距离排序。在该表中,您的距离是按纬度、经度计算的吗?那么为什么不使用地图数据结构呢 它为您提供配对位置距离假设您有一些包含纬度、经度和位置名称的类。您可以将此类的对象放入一个树集,其中比较器

我有一张标有lat、long和地点名称的桌子。 我计算了距离当前位置最近的距离,并将距离添加到一个arraylist中,然后按升序排序。 接下来,我在其他arraylist中添加了名称。 现在我需要使用与其他列表的距离按顺序设置名称。
怎么做?

为什么不直接用距离作为键,名称作为值来构造一个。这样,它们将始终按距离排序。

在该表中,您的距离是按纬度、经度计算的吗?那么为什么不使用地图数据结构呢


它为您提供配对位置距离

假设您有一些包含纬度、经度和位置名称的类。您可以将此类的对象放入一个
树集,其中比较器将当前位置作为构造函数参数,并计算进行比较的距离。

我认为您在这里使用数组太多了。如果有两个或多个相关数据段,则不应将每个数据段放入单独的数组中。相反,创建一个类来保存所有相关数据(lat、long、distance和name),并创建一个数组(或一些更好地满足您需求的其他集合,如SortedList)来保存该类的实例。该类可以使用距离作为度量实现可比较,因此允许按距离排序。

使用。你甚至不需要在一个单独的数组中添加每个元素与当前元素的距离。只要正确实现比较器


阵列列表上执行
toArray()
后使用此选项如果我将值放入地图中,那么我需要再次将它们放入列表中我需要使用这些lat、long计算距离,并使用最近距离树将名称添加到列表中,并将距离作为键是个好主意,但如果有5个条目具有相同的距离,该怎么办?问题的关键是如何将一个名称数组与一个距离数组(已排序)相关联。