Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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_Arrays_Arraylist_Multidimensional Array - Fatal编程技术网

向数组列表中添加一个双精度数组会给我带来奇怪的(十六进制?)值-java

向数组列表中添加一个双精度数组会给我带来奇怪的(十六进制?)值-java,java,arrays,arraylist,multidimensional-array,Java,Arrays,Arraylist,Multidimensional Array,当我尝试向ArrayList添加一个双精度数组时,遇到了一些问题 ArrayList<double[]> vok = new ArrayList<double[]>(); 当我在调试中将鼠标悬停在temp上时,它会显示正确的值,例如 温度=[40.55999755859375,-20.100000381469727,-28.260000228881836] 我想在数组中,但当它被添加到“vok”中时,我最终得到了如下符号[D@419aeb28]在数组中(十六进制?)。我

当我尝试向ArrayList添加一个双精度数组时,遇到了一些问题

ArrayList<double[]> vok = new ArrayList<double[]>();
当我在调试中将鼠标悬停在temp上时,它会显示正确的值,例如

温度=[40.55999755859375,-20.100000381469727,-28.260000228881836]

我想在数组中,但当它被添加到“vok”中时,我最终得到了如下符号[D@419aeb28]在数组中(十六进制?)。我尝试过改变将元素添加到vok=Arrays.asList(temp)的方法,并改变相应的类型,但仍然存在同样的问题。 我不确定是否有比我现在使用的更好的方法,但我已经为此工作了一整天,这是我得到的最接近的方法。我的最终目标是将值存储为:

Double[][] vee = {{0.4222307801246643,-0.12258315086364746,-0.2996482849121094},
            {-0.4222307801246643,-0.06810164451599121,0.1498241424560547},
            {-0.1089627742767334,0.027240753173828125,0.23154544830322266},
            {0.0,0.16344404220581055,0.04086112976074219}}
用于另一个需要该类型输入的类。请帮忙!:)

不要这样做

System.out.println(vok);

您的问题是(间接地)调用了
double[]
toString()[D@419aeb28]
而不是它的内容

因此,您的代码是正确的,并且执行您希望它执行的操作。您所犯的错误是如何在控制台上显示数据。

而不是写入数据

System.out.println(vok);
您可以使用以下内容:

Iterator<double[]> e = vok.iterator();
while (e.hasNext())
{
    double[] array = e.next();
    // You can structure the output of the printing in whatever way makes sense for you
    System.out.print(Arrays.toString(array));
}
Iterator e=vok.Iterator();
while(e.hasNext())
{
double[]数组=e.next();
//您可以以任何对您有意义的方式构造打印输出
System.out.print(array.toString(array));
}

这与jlordo的回答类似,他只比我快了几分钟,我想把我所做的事情发布出来。

只是一个变量名?我的错误,我错过了第一行。声明此数组列表的正确方法是:ArrayList vok=new ArrayList()@托马诺德:不,他想要一份
double[]
的名单,并声明它是正确的。@oxfam\u拒绝:对不起,他不是有意冒犯你;)(应该写OP)-无论如何:很高兴我能帮上忙,希望你学到点东西:)
System.out.println(vok);
Iterator<double[]> e = vok.iterator();
while (e.hasNext())
{
    double[] array = e.next();
    // You can structure the output of the printing in whatever way makes sense for you
    System.out.print(Arrays.toString(array));
}