繁体   English   中英

将2D数组转换为对象数组

[英]Convert 2D array into object array

我有一个2D数组,我需要将数组的每条“线”转换为一个单独的对象数组元素,其中包含一个String,一个Int和多个Doubles。 现在,每个2D数组元素都存储为String。

这是我的班级对象:

public Object() {
    String = "null";
    Double1 = -1.0;
    Double2 = -1.0;
    Double3 = -1.0;
    Integer = -1; 
}

这是我用来将2D数组转换为类数组的方法:

 public static void objectConvert() {
        Object[] objArray = new Object[count];
        for (int i = 0; i<count; i++) {
            objArray[i] = new Object(data[i][0], Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));
        }
        System.out.println(objArray[0]);
        System.out.println(objArray[1]);
    }

这是编译时出现的错误:

 javac Program.java

Program.java:42: error: constructor Object in class Object cannot be applied to given types;
                        Object[i] = new Object(data[i][0],
 Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));
                                               ^
  required: no arguments
  found: String,double,double,double,int
  reason: actual and formal argument lists differ in length
1 error

for循环内分配时,使用objArray[i]代替Object[i]

还有一个错误,您尚未定义一个构造函数,该构造函数接受String,double,double,double,int并考虑将您的类从Object重命名为其他名称。

您的构造函数可以像这样:

public Object(String a, Double b, Double c, Double d, Integer e) {
    string = a;
    double1 = b;
    double2 = b;
    double3 = d;
    integer = e; 
}

Object [i] =新的Object(data [i] [0],Double.parseDouble(data [i] [1]),Double.parseDouble(data [i] [2]),Double.parseDouble(data [i] [3]),Integer.parseInt(data [i] [4]));

它的

objArray[i]=  new Object(data[i][0], Double.parseDouble(data[i][1]), Double.parseDouble(data[i][2]), Double.parseDouble(data[i][3]), Integer.parseInt(data[i][4]));

您的类Object必须具有一个读取5个参数的构造函数(字符串,双精度,双精度,双精度,双精度,整数)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM