Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中如何在2d数组上的循环中创建对象_Java_Arrays_Multidimensional Array_2d - Fatal编程技术网

在Java中如何在2d数组上的循环中创建对象

在Java中如何在2d数组上的循环中创建对象,java,arrays,multidimensional-array,2d,Java,Arrays,Multidimensional Array,2d,我有一节课 public class SimpleData() { String continent; String country; String city; public SimpleData(String continent, String country, String city) { this.continent = continent; this.country = country; this.city

我有一节课

public class SimpleData() {
    String continent;
    String country;
    String city;

    public SimpleData(String continent, String country, String city) {
        this.continent = continent;
        this.country = country;
        this.city = city;
    }

}
另一个类从文件中获取数据并返回2d对象数组

private Object[][] getDataFromFile(String fileName) {
    return dataLoader.getTableArray(fileLocation, dataSheetName);
}

//will return something like
europe, uk, london
europe, france, paris
在二维数组中循环并将对象添加到列表中时,如何创建SimpleData的对象,以便SimpleData的每个对象表示一行数据

private List<SimpleData> getDataList() {
    Object[][] array = readDataFromFile("myfile");
    List<SimpleData> dataList = new ArrayList<SimpleData>();

    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr[i].length; j++) {
            //what's the code to generate object with the correct row of data?
        }
    }
    return dataList;
}
private List getDataList(){
对象[][]数组=readDataFromFile(“myfile”);
List dataList=new ArrayList();
对于(int i=0;i
for
循环中,不要通过
j
循环,而是调用构造函数

for (int i = 0; i < arr.length; i++) {
    SimpleData yourData = new SimpleData(arr[i][0].toString(), arr[i][1].toString(), arr[i][2].toString());
    // Whatever you want with yourData.
}
for(int i=0;i
您还可以创建SimpleDatas的ArrayList,例如:

ArrayList<SimpleData> datas = new ArrayList<SimpleData>();
for (int i = 0; i < arr.length; i++) {
    datas.add(new SimpleData(arr[i][0].toString(), arr[i][1].toString(), arr[i][2].toString()));
}
// Whatever you want with datas.
ArrayList data=new ArrayList();
对于(int i=0;i
编辑:更新为向每个SimpleData构造函数添加
toString
。由于这是维齐尔的解决方案,请投票/接受他的答案。

而不是

    for (int j = 0; j < arr[i].length; j++) {
        //what's the code to generate object with the correct row of data?
    }

二维数组是否正好包含3列?如果是这样,下面是代码

 private List<SimpleData> getDataList() {
    Object[][] array = readDataFromFile("myfile");
    List<SimpleData> dataList = new ArrayList<SimpleData>();

    for (int i = 0; i < arr.length; i++) {
        SimpleData sd = new SimpleData(array[i][0], array[i][1], array[i][2]);
        dataList.add(sd);
        }
    }
    return dataList;
}
private List getDataList(){
对象[][]数组=readDataFromFile(“myfile”);
List dataList=new ArrayList();
对于(int i=0;i
SimpleData构造函数采用字符串参数,因此您应该将对象转换为字符串。
 private List<SimpleData> getDataList() {
    Object[][] array = readDataFromFile("myfile");
    List<SimpleData> dataList = new ArrayList<SimpleData>();

    for (int i = 0; i < arr.length; i++) {
        SimpleData sd = new SimpleData(array[i][0], array[i][1], array[i][2]);
        dataList.add(sd);
        }
    }
    return dataList;
}