Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.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
如何打印实际值而不是[[Ljava.lan.Number]?_Java_Arraylist - Fatal编程技术网

如何打印实际值而不是[[Ljava.lan.Number]?

如何打印实际值而不是[[Ljava.lan.Number]?,java,arraylist,Java,Arraylist,我有一个数字样本。我将它们存储在带有时间戳和值的数据点的列表中。以下是我的代码: List<Number> samples = {55,67,57,67}; List<Number[]> dps = Lists.newArrayList(); Calender c1; c1.set(2013, 5, 20, 15, 44, 00); int timeStartSec = (int) (c1.getTime().getTime() / 1000); for(Numbe

我有一个数字样本。我将它们存储在带有时间戳和值的数据点的
列表中。以下是我的代码:

List<Number> samples = {55,67,57,67};
List<Number[]> dps = Lists.newArrayList();

Calender c1; c1.set(2013, 5, 20, 15, 44, 00);

int timeStartSec = (int) (c1.getTime().getTime() / 1000);

for(Number num: samples){
    dps.add(new Number[] { timeStartSec, num});
    timeStartSec = timeStartSec+5;
}

System.out.println("Final DataPoints " + dps);
List samples={55,67,57,67};
List dps=Lists.newArrayList();
压延机c1;c1.套(2013,5,20,15,44,00);
int timeStartSec=(int)(c1.getTime().getTime()/1000);
用于(数量:样本){
add(新编号[]{timeStartSec,num});
timeStartSec=timeStartSec+5;
}
System.out.println(“最终数据点”+dps);
输出:

最终数据点[[Ljava.lang.Number;@af8358[Ljava.lang.Number;@d80be3[Ljava.lang.Number;@1f4689e[Ljava.lang.Number;@1006d75[Ljava.lang.Number;@1125127[Ljava.lang.Number;@18dfef8[Ljava.lang.Number;@15e83f9[Ljava.lang.Number;@2a5330[Ljava.lang.Number;@bb7465]


为什么打印为
java.lang.Number
而不是相应的值?

数组不会覆盖
toString
方法(令人烦恼)。请查看

[Ljava.lang.Number;@14b7453 [1, 2, 3, 4]
在您的情况下,您需要对
dps
的每个元素调用
Arrays.toString
,打印/存储结果。

数组实例没有
toString()
方法。您可以改为使用
ArrayList

List<Number> samples - {55,67,57,67};
List<List<Number>> dps = new ArrayList<List<Number>>();

for(Number num: samples){

    dps.add(Arrays.asList(timeStartSec, 10));
    timeStartSec = timeStartSec+5;
}
System.out.println("Final DataPoints " + dps);
列出样本{55,67,57,67};
List dps=new ArrayList();
用于(数量:样本){
添加(Arrays.asList(timeStartSec,10));
timeStartSec=timeStartSec+5;
}
System.out.println(“最终数据点”+dps);

编辑:或在类数组上定义的静态方法:

关于数组的有趣细微差别,我并没有意识到。使用ArrayList而不是Arrays是有效的。感谢使用类似这样的基本方法(要列出的数组)仅仅为了
toString
似乎很激烈。我不喜欢将
集合
数组
结合起来,这是非常不自然的。我会选择
Number[][]
列表
[Ljava.lang.Number;@14b7453 [1, 2, 3, 4]
List<Number> samples - {55,67,57,67};
List<List<Number>> dps = new ArrayList<List<Number>>();

for(Number num: samples){

    dps.add(Arrays.asList(timeStartSec, 10));
    timeStartSec = timeStartSec+5;
}
System.out.println("Final DataPoints " + dps);