使用下面的代码我需要以这样的方式更改Object [] [] bookcomments,我应该将元素动态添加到bookcomments中,并进一步使用它来将内容写入xlsx文件。
问题:我在这里遇到的问题是,我使用 bookComments = new Object [] [] {{name,email,phNo,skillset},}; 此行正在重新初始化我的2D数组每次都是。
非常感谢您的帮助!!,提前谢谢您。
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = WorkbookFactory.create(inputStream);
// headers of xlsx sheet - hard coded here
Object[][] bookComments = { { "name", "email", "Mobile number", "skillset" }, };
Sheet newSheet = workbook.createSheet("org2");
Iterator it = empSheet.entrySet().iterator();
Iterator itAddress = addressSheet.entrySet().iterator();
Iterator itSkillSheet = skillSheet.entrySet().iterator();
while(it.hasNext()) {
Map.Entry eSheet = (Map.Entry)it.next();
String email = null;
String skillset = null;
String name = (String) eSheet.getValue();
String phNo = (String) eSheet.getKey();
List<String> addressndEmail = addressSheet.get(phNo);
email = addressndEmail.get(1);
skillset = skillSheet.get(name);
bookComments = new Object[][]{{name,email,phNo,skillset},};
//ArrayUtils.addAll(bookComments, bookComment);
}
答案 0 :(得分:1)
不能一旦创建就无法更改数组的大小。您要么必须分配比您认为需要的更大的分配,要么接受必须重新分配的开销需要增长。当它发生时你必须分配一个新数据并将数据从旧数据复制到新数据,否则你可以使用数组列表而不是数组。
最初应该初始化数组的大小
String[][] bookComments = new String[intSize][intSize];
指定值(在while循环中使用增量变量,如'i')
i++;
bookComments[i][0]=name;
bookComments[i][1]=email;
bookComments[i][2]=phNo;
bookComments[i][3]=skillset;
我不知道你的要求,希望这可以帮到你