我在我的代码中有一个问题,我需要将四个doubles与其他四个doubles的集合进行比较。我尝试为它创建一个四维数组:
double[][][][] myArray = new double[][][][] {{{{1.1}, {1.2}, {1.3},{1.4}}}};但这样做的问题是我不知道数组的大小,我需要能够动态地向它添加元素。我不熟悉数组列表,但我想知道这是不是解决方案?你能有多维数组列表吗?
编辑以更好地解释问题:
我有四个替身的原因是它们存储了与旅行相关的位置。
Double 1 = lattitude of start location.
Double 2 = longitude of start location.
Double 3 = lattitude of end location.
Double 4 = longitude of end location.因此,我有4个doubles与一次旅行相关联,我需要能够获取这些值,并将它们与其他4个doubles的集合进行比较,以查看这些位置是否在彼此的合理距离内。我已经解决了这一方面的问题。这就是我想要做的就是比较一组4个双打和n个其他组。我最终希望能够运行彼此的每个集合,以确定它们是否相似。
发布于 2013-03-14 03:39:54
首先,没有理由使用4维数组。无意冒犯,但这种代码看起来丑陋!
若要向数组中动态添加元素,请改用ArrayList<Double>。这个数据结构没有固定的大小。你可以像这样初始化它:
List<Double> dblList = Arrays.asList(1.1, 1.2, 1.3, 1.4);或
List<Double> dblList = new ArrayList<Double>(new Double[] {1.1, 1.2, 1.3, 1.4});更新
抱歉,我刚刚意识到您想要将多个列表相互比较。但是,这个答案应该能够帮助你。
发布于 2013-03-14 03:40:01
为了相互比较4组双打,你不需要4个维度,只需要2个维度。第一个维度是你有多少组双打,第二个维度是每组4个双打。
double[][] myArray = new double[2 /*sets*/][4 /*doubles each*/] = {
{1.1, 1.2, 1.3, 1.4}, {2.1, 2.2, 2.3, 2.4}};如果您需要添加到列表中,那么您可能需要一个ArrayList<ArrayList<Double>>,以便可以添加包含4个doubles的列表。或者可能是一个ArrayList<double[]>,这样您就可以向不断增长的ArrayList中添加每个包含4个doubles的数组。
发布于 2013-03-14 03:42:39
如果我没弄错的话,你想要的是一个包含四个双精度的对象集合。
这可以使用包含Double的一些List的List来表示。这样,您就可以使用Java的Java的内置equals和hashcode方法对List<Double>进行操作。因此,您的代码可以如下所示:
List<List<Double>> dblList = new ArrayList<List<Double>>();并添加一些包含四个Double的列表。这种方法的主要优点是可以使用List接口的equals方法检查两个子列表是否相等。
https://stackoverflow.com/questions/15394722
复制相似问题