Copie en profondeur d'un ArrayList<Arraylist> en JAVA

J'ai vérifié d'autres réponses, mais je ne pouvais pas trouver une réponse à ma question.
Je veux créer une copie de mon ArrayList<ArrayList>, car j'ai besoin de l'original quelque part d'autre. J'ai utilisé le .clone() méthode de différentes façons:

public class WordChecker {

    private ArrayList<ArrayList> copyOfList = new ArrayList<ArrayList>();

    public WordChecker(ArrayList<ArrayList> list) {
        for (int i = 0; i < list.size(); i++)
            for (int j = 0; j < 7; j++)
                copyOfList = (ArrayList<ArrayList>) list.clone(); //without error
                //copyOfList = list.clone();cannot convert from Object to
                //ArrayList<ArrayList>
                //copyOfList = list.get(i).clone();cannot convert from Object to
                //ArrayList<ArrayList>
                //copyOfList = list.get(i).get(j).clone();
    }

mais toujours mon principal ArrayList des modifications car je travail sur sa copie.
Quelqu'un pourrait-il me dire comment je dois obtenir une copie en profondeur dans ce cas?

Réponse:
J'ai mis le mécanisme de recopie dans mon constructeur de la classe:

private ArrayList<List> checkedTags = new ArrayList<List>();
public WordChecker(ArrayList<ArrayList> list)
  {
     for (ArrayList word: list) copyOfList.add((ArrayList) word.clone());

}

le seul problème, c'est que ce n'est pas applicable à copier à partir de ArrayList qui m'a fait passer par une boucle for utiliser .méthode get ().Je pense qu'ils sont fondamentalement les mêmes à la fin.

  • N'utilisez pas de clone(). Utiliser la liste de tableaux constructeur qui prend une autre collection, comme argument. Et vous aurez besoin de boucle si vous voulez une copie en profondeur.
  • Jetez un oeil ici: stackoverflow.com/questions/715650/...
  • J'ai fait une boucle imbriquée à atteindre pour chaque élément à l'intérieur de l'ArrayList. il envoyait le message d'erreur mentionné dans la front de de le code. J'ai utilisé ce code: >> for (liste de tableaux word: la liste) copyOfList.ajouter(mot.clone())... trop. mais il ne peut l'accepter .ajouter .
InformationsquelleAutor msc87 | 2014-03-27