首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多维数组或多维数组列表

多维数组或多维数组列表
EN

Stack Overflow用户
提问于 2013-03-14 03:30:53
回答 5查看 519关注 0票数 0

我在我的代码中有一个问题,我需要将四个doubles与其他四个doubles的集合进行比较。我尝试为它创建一个四维数组:

代码语言:javascript
复制
double[][][][] myArray = new double[][][][] {{{{1.1}, {1.2}, {1.3},{1.4}}}};

但这样做的问题是我不知道数组的大小,我需要能够动态地向它添加元素。我不熟悉数组列表,但我想知道这是不是解决方案?你能有多维数组列表吗?

编辑以更好地解释问题:

我有四个替身的原因是它们存储了与旅行相关的位置。

代码语言:javascript
复制
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个其他组。我最终希望能够运行彼此的每个集合,以确定它们是否相似。

EN

回答 5

Stack Overflow用户

发布于 2013-03-14 03:39:54

首先,没有理由使用4维数组。无意冒犯,但这种代码看起来丑陋!

若要向数组中动态添加元素,请改用ArrayList<Double>。这个数据结构没有固定的大小。你可以像这样初始化它:

代码语言:javascript
复制
List<Double> dblList = Arrays.asList(1.1, 1.2, 1.3, 1.4);

代码语言:javascript
复制
List<Double> dblList = new ArrayList<Double>(new Double[] {1.1, 1.2, 1.3, 1.4});

更新

抱歉,我刚刚意识到您想要将多个列表相互比较。但是,这个答案应该能够帮助你。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 03:40:01

为了相互比较4组双打,你不需要4个维度,只需要2个维度。第一个维度是你有多少组双打,第二个维度是每组4个双打。

代码语言:javascript
复制
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的数组。

票数 0
EN

Stack Overflow用户

发布于 2013-03-14 03:42:39

如果我没弄错的话,你想要的是一个包含四个双精度的对象集合。

这可以使用包含Double的一些ListList来表示。这样,您就可以使用Java的Java的内置equalshashcode方法对List<Double>进行操作。因此,您的代码可以如下所示:

代码语言:javascript
复制
List<List<Double>> dblList = new ArrayList<List<Double>>();

并添加一些包含四个Double的列表。这种方法的主要优点是可以使用List接口的equals方法检查两个子列表是否相等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15394722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档