J'ai un ArrayList
et je veux le copier exactement. J'utilise des classes d'utilité lorsque c'est possible, en partant du principe que quelqu'un a passé du temps à le rendre correct. Donc naturellement, je me retrouve avec le Collections
qui contient une méthode de copie.
Supposons que j'ai les éléments suivants :
List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
List<String> b = new ArrayList<String>(a.size());
Collections.copy(b,a);
Cela échoue parce que, fondamentalement, il pense b
n'est pas assez grand pour contenir a
. Oui, je sais. b
a la taille 0, mais il devrait être assez grand maintenant, n'est-ce pas ? Si je dois remplir b
d'abord, puis Collections.copy()
devient une fonction complètement inutile dans mon esprit. Donc, à part programmer une fonction de copie (ce que je vais faire maintenant), y a-t-il une façon correcte de faire cela ?
1 votes
La doc pour Collections.copy() dit "La liste de destination doit être au moins aussi longue que la liste source".
21 votes
Je ne pense pas que la réponse acceptée soit correcte.
3 votes
Vous avez accepté une réponse incorrecte, étage Jasper. J'espère sincèrement que vous n'avez pas utilisé les mauvaises informations dans votre code !