我正在尝试在构建器构造函数中复制byte []数组的ArrayList。我想将arrayLst1复制到arrayLst2。我尝试用这段代码做的:
builder.arrayLst2.forEach(item->this.arrayLst1.add(item));
但我收到以下错误:
Exception in thread "main" java.util.ConcurrentModificationException
因此Google将我引导至Iterators here,here和here,因此我尝试了此代码(以及其他变体)。
for (Iterator itr = builder.arrayLst1.iterator(); itr.hasNext();) {
this.arrayLst2.add(itr.next());
}
第二行给出了错误消息"没有找到适合添加方法的方法。"
我尝试过:
Iterator itr = this.arrayLst.iterator();
builder.arrayLst2.forEach(item->itr.next() );
但我无法弄清楚如何逐步完成第一个array1并使用迭代器添加/复制到array2。
如何将一个ArrayList byte []复制到另一个?我确信必须有一个简单的解决方案,但我无法找到它。
编辑:声明错误实际上意味着没有声明arraylist。而不是这样说,编译器错误消息指向需要使用迭代器。
答案 0 :(得分:0)
java.sourceSets["main"].java {
srcDir("src/gen/java")
}
或
this.arrayLst1 = new ArrayList<>(builder.arrayLst2);
答案 1 :(得分:0)
归功于这个答案属于#Zaki Anwar Hamdani。 我在声明中犯了一个错误。
以下声明有效。
this.flagImgs = new ArrayList <>( this.flagImageFilenames.size());
builder.flagImgs.forEach(item->this.flagImgs.add(item));
让我难过的是错误消息没有暗示声明的问题。对迭代器的引用让我陷入了疯狂的追逐之中。