如何打印实际值而不是[[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);