80 votes

java.lang.IndexOutOfBoundsException : La source ne rentre pas dans le dest

Sur le code suivant :

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

Je reçois l'erreur :

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)

Pourquoi ?

-1voto

Ahmad Al-Kurdi Points 1127

En java 8 +

List<Integer> numbersCopy = numbers.stream().collect(Collectors.toList());

C'est plus facile en java 10+.

List<Integer> numbersCopy = List.copyOf(numbers);

Liste .copyOf() renvoie un unmodifiable Liste contenant les éléments de la collection donnée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X