Java 仅使用基本体将元素动态添加到二维数组中
使用下面的代码,我需要更改对象[][]bookcomments,以便将元素动态添加到bookcomments中,并进一步使用它将内容写入xlsx文件 问题:我在这里面临的问题是,我使用了bookComments=newobject[][{{name,email,phNo,skillset},}此行每次都在重新初始化我的2D数组 非常感谢你的帮助!!,先谢谢你Java 仅使用基本体将元素动态添加到二维数组中,java,excel,multidimensional-array,apache-poi,Java,Excel,Multidimensional Array,Apache Poi,使用下面的代码,我需要更改对象[][]bookcomments,以便将元素动态添加到bookcomments中,并进一步使用它将内容写入xlsx文件 问题:我在这里面临的问题是,我使用了bookComments=newobject[][{{name,email,phNo,skillset},}此行每次都在重新初始化我的2D数组 非常感谢你的帮助!!,先谢谢你 FileInputStream inputStream = new FileInputStream(new File(excelF
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);
}
FileInputStream-inputStream=newfileinputstream(新文件(excelFilePath));
工作簿=WorkbookFactory.create(inputStream);
//xlsx表的标题-此处硬编码
对象[][]bookComments={{{“姓名”、“电子邮件”、“手机号码”、“技能集”},};
工作表新闻表=工作簿.createSheet(“org2”);
迭代器it=empSheet.entrySet().Iterator();
迭代器itAddress=addressSheet.entrySet().Iterator();
迭代器itSkillSheet=skillSheet.entrySet().Iterator();
while(it.hasNext()){
Map.Entry eSheet=(Map.Entry)it.next();
字符串email=null;
字符串skillset=null;
字符串名称=(字符串)eSheet.getValue();
字符串phNo=(字符串)eSheet.getKey();
List addressndEmail=addressSheet.get(phNo);
email=addressndEmail.get(1);
skillset=skillSheet.get(名称);
bookComments=newobject[][{{{name,email,phNo,skillset},};
//ArrayUtils.addAll(bookComments,bookComment);
}
不,一旦创建了数组,就不能更改数组的大小。您要么必须将其分配得比您认为需要的更大,要么必须接受重新分配以增加其规模所需的开销。如果需要,您必须分配一个新的,并将数据从旧的复制到新的,否则您可以使用数组列表而不是数组
应该首先初始化数组的大小
String[][] bookComments = new String[intSize][intSize];
赋值(在while循环中使用类似“i”的增量变量)
我不知道您的要求,希望这能对您有所帮助非常感谢您。这是一个好办法。这对我有用。祝您2018年新年快乐。
i++;
bookComments[i][0]=name;
bookComments[i][1]=email;
bookComments[i][2]=phNo;
bookComments[i][3]=skillset;