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

use*_*703 2 java arraylist

我有一个数字样本.我将它们存储在List带有时间戳和值的数据点中.这是我的代码:

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);
Run Code Online (Sandbox Code Playgroud)

输出:

Final DataPoints [[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而不是适当的值?

ars*_*jii 9

数组不会覆盖该toString方法(烦人).看看Arrays.toString.

Number[] nums = {1, 2, 3, 4};
System.out.println(nums);
System.out.println(Arrays.toString(nums));
Run Code Online (Sandbox Code Playgroud)
[Ljava.lang.Number;@14b7453
[1, 2, 3, 4]

在您的情况下,您将需要调用打印/存储结果的Arrays.toString每个元素dps.