1

我正在尝试将一个项目添加到列表列表中。partitionsLinkedList的列表中的一个Strings。我正在尝试将一个项目添加到分区列表中一个分区的开头,但我得到了一个ConcurrentModificationException,即使我使用的是名为partitionsCopy.

有没有办法做到这一点?我能找到的只是有关如何使用 删除项目或添加项目的示例ListIterator,但我无法在特定位置添加项目ListIterator

int index = 0;
for (List<String<?>> partition : partitions) {
    if (index > 0) {
        partitionsCopy.get( index ).add(0, lastPartition.get(lastPartition.size() - 1));
    }
    lastPartition = partition;
    index++;
}

partitionsCopy 看起来像这样

List<List<String<?>>> partitionsCopy = new LinkedList<List<String<?>>>( );
partitionsCopy.addAll( partitions );

这是我从 jtahlborn 的回答中得出的结论。

  for ( List<String<?>> partition : partitions ) {
    List<String<?>> list = new ArrayList<String<?>>( );
    list.addAll( partition );
    partitionsCopy.add( list );
  }
4

1 回答 1

1

您的问题不在于,而在于partitionsCopy(嵌套列表)中的任何内容,因为那是您实际修改的列表。当您复制到时,您只是复制对嵌套列表的引用。您不是在复制嵌套列表本身。 partitionsCopypartitionspartitionsCopy

于 2013-05-01T13:40:03.897 回答