在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;
}