把double[]存入Json的准备工作
最近想将double[] 用json格式保存,发现json格式只能解析List<>,在二者转换过程中,掉进了List的陷阱,特总结如下,希望对你有帮助!
List<> ,double[ ], Double[ ]数据类型特性分析
1、List是对象的集合,可以存放以下类型的对象,例如List List List 等。
一开始我参照网上String[] 和List二者转换,编写double[]和List转换,报错。
教训:如果将double[]直接变成List,经多次测试,我发现都List中都只有一个值,因为此时整个数组作为一个元素存入了List。
原因:String字符串类型本身就是对象,而double只是基本数据类型,非对象,因此需要首先将double[]转换成Double[]。
2、Double和double傻傻分不清楚
Double类型是double的包装类。Double[] 每个元素都是一个对象,double[]整体作为一个对象,二者的转换需要调用包装类的函数。
List转double[ ]
public double[] ListTodouble(List<Double> list){
Double[] doubles=new Double[list.size()];
list.toArray(doubles);
if(doubles==null){
return null;
}
double[] result=new double[doubles.length];
for(int i=0;i<doubles.length;i++){
result[i]=doubles[i].doubleValue();
}
return result;
}
double[ ] 转List
public List<Double> doubleToList(double[] arr_double){
List<Double> list=new ArrayList<Double>();
int num=arr_double.length;
Double [] arr_Double=new Double[num];
for(int i=0;i<num;i++){
arr_Double[i]=arr_double[i];//double[]转Double[]
}
list=Arrays.asList(arr_Double);//Double[]转List
return list;
}
希望对你有帮助!
参考文章:https://blog.csdn.net/chenleixing/article/details/43775127