将两个值添加到List <double []> </double []>

时间:2012-06-21 08:51:36

标签: java android

我正在创建一个Android应用程序,我需要以List的形式将double值(BodySize)保存到文件中以绘制图形。实际上这个代码是'List'的形式,我试着把它改成'List'。但它在'list.add(BodySize)'中出错。我该如何解决这个问题?

 public static void updateFile(double BodySize) {

            FileOutputStream fos = null;
            ObjectOutputStream oos = null;

            try{
                List<double[]> list = getDoubles();
                list.add(BodySize);
                fos = new FileOutputStream("user_data.txt");
                oos = new ObjectOutputStream(fos);
                oos.writeObject(list);

            }catch(Exception e){
                e.printStackTrace();
                try {
                    oos.close();
                    fos.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }

            }

        }

        public static List<double[]> getDoubles() {

            FileInputStream fis = null;
            ObjectInputStream ois = null;
            List<double[]> newList = new ArrayList<double[]>>();
            try {
                fis = new FileInputStream("user_data.txt");
                ois = new ObjectInputStream(fis);

                newList = (ArrayList<double[]>) ois.readObject();

            } catch (Exception ex) {

                try {
                    fis.close();
                    ois.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return newList;
        }

3 个答案:

答案 0 :(得分:2)

new ArrayList<double[]>()创建一个双精度数组列表,而不是双精度数列表。列表本身是一个数组(可变长度),所以只需使用:

List<Double> newList = new ArrayList<Double>(); 

答案 1 :(得分:0)

Bodysize是一个double,列表是double [](double数组)

答案 2 :(得分:0)

List<double[]> list = getDoubles();
        list.add(BodySize);

BodySize的类型为double,而List<double[]>的格式为double[]