java.util.ConcurrentModificationException当从java中删除行从Excel
for(Row row:sheet) { for(int rowNo=0;rowNo<sheet.getLastRowNum();rowNo++) { row=sheet.getRow(rowNo); sheet.removeRow(row); } }
我想通过Java从Excel文件中删除行,但它给我错误
java.util.TreeMap中的java.util.ConcurrentModificationException $ java.util.TreeMap中的$ PrivateEntryIterator.nextEntry(TreeMap.java:1207)$ ValueIterator.next(TreeMap.java:1252)
TreeMap
不支持并发删除。
你应该使用iterator
的remove方法
Iterator<Row> it = sheet.iterator(); while(it.hasNext()) { Row row = it.next(); ... it.remove(); }
您似乎没有使用外部for循环中的row
,因此您可以将其删除:
for(int rowNo=sheet.getLastRowNum()-1; rowNo >= 0;rowNo--) { row=sheet.getRow(rowNo); sheet.removeRow(row); }
还要注意,我正在向后迭代行,所以最终不会只移除其他行。