当我尝试将双精度数组添加到 ArrayList 时遇到问题。
ArrayList<double[]> vok = new ArrayList<double[]>();
我遇到问题的方法是:
public void onSensorChanged(SensorEvent e) {
if(e.sensor.getType()==Sensor.TYPE_MAGNETIC_FIELD){
double[] temp = new double[3] ;
double x = e.values[0];
temp[0]=x;
double y = e.values[1];
temp[1]=y;
double z = e.values[2];
temp[2]=z;
vok.add(temp);
System.out.println(vok);
}
当我在调试中将鼠标悬停在 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}}
用于需要该类型输入的另一个类。请帮忙!:)