Comment faire une copie de java.util.Liste dans un autre java.util.Liste

J'ai un List<SomeBean> est rempli à partir d'un Service Web. Je veux copier/cloner le contenu de cette liste dans une liste vide du même type. Une recherche sur Google pour copier une liste m'a suggéré d'utiliser Collections.copy() méthode. Dans tous les exemples que j'ai vu, la liste de destination était censé contenir le nombre exact d'éléments pour la copie de prendre place.

Que la liste que j'utilise est peuplée par l'intermédiaire d'un service web et il contient des centaines d'objets, je ne peux pas utiliser la technique ci-dessus. Ou je l'utilise mal??!! De toute façon, pour le faire fonctionner, j'ai essayé de faire quelque chose comme ça, mais j'ai encore un IndexOutOfBoundsException.

List<SomeBean> wsList = app.allInOne(template);

List<SomeBean> wsListCopy=new ArrayList<SomeBean>(wsList.size());   
Collections.copy(wsListCopy,wsList);
System.out.println(wsListCopy.size());

J'ai essayé d'utiliser le wsListCopy=wsList.subList(0, wsList.size()), mais j'ai eu un ConcurrentAccessException plus tard dans le code. Hit et du procès. 🙂

De toute façon, ma question est simple, comment puis-je copier le contenu de ma liste dans une autre Liste? Pas par itération, bien sûr.

  • Toute copie sera l'utilisation de l'itération de cours. Vous pouvez le cacher, mais il sera toujours là.
  • Tout d'abord: êtes-vous sûr que vous devez copier cette liste? Quelle est votre motivation à le faire?
  • Yup, l'itération est juste caché sous des couches. Mais le commentaire a été ajouté pour éviter toute itération réponses. 🙂
  • Je suis de l'exécution d'opérations sur la liste, comme removeAll(). Cela provoque la liste à la perte de ses données d'origine. Et "données" est également nécessaire par la suite.
  • Quel est le type réel d'une liste, qui est de retour en app.allInOne(template)? ArrayList?
  • Voulez-vous un copie superficielle ou profonde copie?

InformationsquelleAutor Mono Jamoon | 2013-01-14