我有一个数字样本。我将它们存储在带有时间戳和值的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);
输出:
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
而不是相应的值?
答案 0 :(得分:9)
数组不会覆盖toString
方法(烦人)。看看Arrays.toString
。
Number[] nums = {1, 2, 3, 4};
System.out.println(nums);
System.out.println(Arrays.toString(nums));
[Ljava.lang.Number;@14b7453 [1, 2, 3, 4]
在您的情况下,您需要在Arrays.toString
的每个元素上调用dps
,打印/存储结果。
答案 1 :(得分:1)
Array实例没有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);
编辑:或类Arrays上定义的静态方法:Arrays.toString()