gpt4 book ai didi

java.lang.IndexOutOfBoundsException : Source does not fit in dest

转载 作者:IT老高 更新时间:2023-10-28 13:53:12 41 4
gpt4 key购买 nike

关于以下代码:

static void findSubsets (ArrayList<Integer> numbers, int amount, int index)
{
ArrayList <Integer> numbersCopy = new ArrayList<Integer>(numbers.size());
Collections.copy(numbersCopy, numbers);
}

我收到了错误:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Source does not fit in dest
at java.util.Collections.copy(Collections.java:548)
at backtracking2.Main.findSubsets(Main.java:61)

为什么?

最佳答案

容量不等于大小。您传入的大小参数只是为大小分配足够的内存。它实际上并没有定义元素。这实际上是一种对 Collections.copy 的愚蠢要求,但它仍然是一个。

Collections.copy JavaDocs 中的关键部分:

The destination list must be at least as long as the source list. If it is longer, the remaining elements in the destination list are unaffected.

您应该只将 List 传递给 ArrayList 的构造函数以复制所有 List 来完全避免该问题。

关于java.lang.IndexOutOfBoundsException : Source does not fit in dest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147650/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com