java ArrayList多次克隆

java ArrayList多次克隆,java,arraylist,clone,Java,Arraylist,Clone,我正在尝试使用for loop和clone()方法克隆我的ArrayList4次,但我无法克隆。 下面是我编写的(简单的)代码: static ArrayList<Integer> newArrList; for (int n = 1; n <= 4; n++) { ArrayList<Integer> arrList = new ArrayList<>(); for (int i = 1; i <= 13;

我正在尝试使用
for loop
clone()
方法克隆我的
ArrayList
4次,但我无法克隆。 下面是我编写的(简单的)代码:

static ArrayList<Integer> newArrList;
    for (int n = 1; n <= 4; n++) {
        ArrayList<Integer> arrList = new ArrayList<>();
        for (int i = 1; i <= 13; i++) {
            arrList.add(i);
        }
        newArrList = (ArrayList<Integer>) arrList.clone();
        for (int i = 1; i <= 13; i++) {
            newArrList.add(i);
        }
    }
静态数组列表newArrList;

对于(int n=1;n您的代码对我来说似乎有点太混乱了,所以我无法指出您到底哪里出错了

我不明白的第一件事是为什么要创建4次测试列表(在主循环中)。它不应该只创建一次吗

然后做一个
克隆
,然后添加13个元素,将内容两次放入新列表中。一次作为原始内容的副本,然后作为硬编码数据。我不理解这背后的动机

无论如何,我只需要创建一个新的(空)列表,并使用
addAll
将原始列表的所有元素添加4次:

// create test list
ArrayList<Integer> arrList = new ArrayList<>();
for (int i = 1; i <= 13; i++) {
    arrList.add(i);
}

// clone
ArrayList<Integer> newArrList = new ArrayList<>();
for (int i = 0; i < 4; i++) {
    newArrList.addAll(arrList);
}
//创建测试列表
ArrayList arrList=新的ArrayList();

因为(int i=1;我不会把你所做的称为“直截了当”;-)@mastov:我正在尽我最大的努力!-你能看到我哪里做错了吗?这是
直截了当的
更好的
代码。谢谢你。@dustin很抱歉不能准确解释你的代码有什么问题。我只是理解得不够。