是contentlisrt2.add 每次调用都是新的集合结果contentlist1
时间: 2023-12-11 21:02:06 浏览: 55
非常抱歉,我之前给出的代码有误。你是对的,`contentlisrt2.add(contentlist1)`每次调用时会将`contentlist1`的引用添加到`contentlisrt2`中,而不是创建一个新的集合。
如果你希望每次添加都是一个新的集合结果,你可以在每次循环开始时创建一个新的`contentlist1`对象。以下是修改后的代码示例:
```java
List<String> biaotou = new ArrayList<>();
List<List<String>> contentlisrt2 = new ArrayList<>();
for (int i = 0; i < sheet.getRows(); i++) { // 行数
List<String> contentlist1 = new ArrayList<>(); // 创建新的集合对象
for (int x = 0; x < sheet.getColumns(); x++) { // 列数
// 获取第一列的第i行信息sheet.getCell(列,行),下标从0开始
if (i == 0) {
String content1 = sheet.getCell(x, i).getContents();
biaotou.add(content1);
} else {
String content2 = sheet.getCell(x, i).getContents();
contentlist1.add(content2);
}
}
if (!contentlist1.isEmpty()) {
contentlisrt2.add(contentlist1);
}
}
```
现在,每次循环开始时都会创建一个新的`contentlist1`对象,并且只有当`contentlist1`不为空时,才会将其添加到`contentlisrt2`中。这样确保了每次添加都是一个新的集合结果。
阅读全文