Java 将二维阵列转换为原始阵列支持的二维阵列列表
我已经看了各种各样的例子来说明如何做到这一点,我已经到了这个阶段。我的数据导入被复制到数组列表中,但我没有看到我认为会出现的数据 当我使用2D数组时,它会很好地显示导入的数据,但我希望能够对数据进行更改,从而得到数组列表。我需要数据来填充两件事,首先是一个Java表,然后在导出到电子表格时重用数据。如果你能帮我把二维数组转换成二维数组(如果这是我需要的)Java 将二维阵列转换为原始阵列支持的二维阵列列表,java,arrays,arraylist,multidimensional-array,Java,Arrays,Arraylist,Multidimensional Array,我已经看了各种各样的例子来说明如何做到这一点,我已经到了这个阶段。我的数据导入被复制到数组列表中,但我没有看到我认为会出现的数据 当我使用2D数组时,它会很好地显示导入的数据,但我希望能够对数据进行更改,从而得到数组列表。我需要数据来填充两件事,首先是一个Java表,然后在导出到电子表格时重用数据。如果你能帮我把二维数组转换成二维数组(如果这是我需要的)ArrayList,那就太好了 ArrayList student_data=new ArrayList(); System.out.print
ArrayList
,那就太好了
ArrayList student_data=new ArrayList();
System.out.println(DataImport.DataImport(file\u path).length);
System.out.println(Arrays.deepToString(DataImport.DataImport(文件路径));
for(int i=0;i
var rawData=DataImport.DataImport(文件路径)
b) 第二个j循环应该迭代到rawData[i]。长度
c) 最重要的是。你应该在i循环之前创建外部列表,在j循环之前创建内部列表。在j循环内部,将数据添加到内部列表。在j循环之后,将此内部列表添加到外部
差不多
var rawData=DataImport.DataImport(文件路径)
var studentList=新列表
对于(int i=0;i
a)在循环之前只执行一次数据导入。数据导入(文件路径)在循环中不需要一直读取
var rawData=DataImport.DataImport(文件路径)
b) 第二个j循环应该迭代到rawData[i]。长度
c) 最重要的是。你应该在i循环之前创建外部列表,在j循环之前创建内部列表。在j循环内部,将数据添加到内部列表。在j循环之后,将此内部列表添加到外部
差不多
var rawData=DataImport.DataImport(文件路径)
var studentList=新列表
对于(int i=0;i
我不知道是否DataImport.DataImport(file\u path)
是一个非常快速的调用,但即使是重复调用,也不应该重复调用。只调用一次也会提高代码的可读性
由于您希望将二维数组转换为二维列表,因此肯定不希望使用Collections.singleton()
。相反,您希望在外部循环中创建一个列表
String[][]data=DataImport.DataImport(文件路径);
System.out.println(数据长度);
System.out.println(数组.deepToString(数据));
ArrayList student_data=新的ArrayList();
for(字符串[]行:数据){
ArrayList=新建ArrayList();
for(字符串值:行){
列表。添加(值);
}
学生数据。添加(列表);
}
可以使用Arrays.asList()
helper方法消除内部循环:
String[][]data=DataImport.DataImport(文件路径);
ArrayList student_data=新的ArrayList();
for(字符串[]行:数据)
student_data.add(新的ArrayList(Arrays.asList(row));
如果您想使用Java 8流,可以这样做:
String[][]data=DataImport.DataImport(文件路径);
List student_data=Arrays.stream(数据)
.map(行->数组.stream(行).collect(收集器.toList())
.collect(Collectors.toList());
我不知道是否DataImport.DataImport(file\u path)
是一个非常快速的调用,但即使是重复调用,也不应该重复调用。只调用一次也会提高代码的可读性
由于您希望将二维数组转换为二维列表,因此肯定不希望使用Collections.singleton()
。相反,您希望在外部循环中创建一个列表
String[][]data=DataImport.DataImport(文件路径);
System.out.println(数据长度);
System.out.println(数组.deepToString(数据));
ArrayList student_data=新的ArrayList();
for(字符串[]行:数据){
ArrayList=新建ArrayList();
for(字符串值:行){
列表。添加(值);
}
学生数据。添加(列表);
}
可以使用Arrays.asList()
helper方法消除内部循环:
String[][]data=DataImport.DataImport(文件路径);
ArrayList student_data=新的ArrayList();
for(字符串[]行:数据)
student_data.add(新的ArrayList(Arrays.asList(row));
如果您想使用Java 8流,可以这样做:
String[][]data=DataImport.DataImport(文件路径);
List student_data=Arrays.stream(数据)
.map(行->数组.stream(行).collect(收集器.toList())
.collect(Collectors.toList());
因此,最后,在理解了Akif Hadziabdic发布的方法之后,我开发了自己的解决方案。我在下面发布了它,以防其他人也有同样的问题。
根据arraylist的指导,我只需在现有arraylist的第一行迭代中创建一个新的arraylist
ArrayList student_data=new ArrayList();
for(int i=0;i 对于(int j=0;j所以最后,在理解了Akif Hadziabdic发布的方法之后,我开发了自己的解决方案。我在下面发布了它,以防其他人也有同样的问题。
根据arraylist的指导,我只需在现有arraylist的第一行迭代中创建一个新的arraylist
ArrayList student_data=new ArrayList();
对于(int i=0;i