因此,我基本上将一些Integer对象放入ArrayList x,然后将一些对象放入ArrayList y,然后再进行y.addAll(x),但这似乎只是添加第一个对象,而忽略所有其余的对象!它不应该添加全部吗?我在Oracle上进行了查找,他们显示了“完全相同的示例”,但我的无法正常工作。这是我的代码:

ArrayList<Integer> x = new ArrayList<Integer>();
Integer a = 1;
Integer b = 2;
Integer c = 3;
x.add(a);
x.add(b);
ArrayList< Integer> y = new ArrayList< Integer>();
y.addAll(x);


但是y似乎只有1且缺少23

我究竟做错了什么?

编辑:
是的,对不起,我知道我实际上还没有将c添加到x,但是即使我这样做了,然后打印y,我仍然得到[1]而不是[1,2,3]。这是我不明白的。

import java.util.ArrayList;
public class SumArrayList {

    public static void main(String[] args) {

        ArrayList<Integer> x = new ArrayList<Integer>();
        Integer a = 1;
        Integer b = 2;
        Integer c = 3;
        x.add(a);
        x.add(b);
        System.out.println(x);
        //System.out.println(calculateSumArrayListHelper(x));

        ArrayList<Integer> y = new ArrayList<Integer>();
        y.addAll(x);
        System.out.println(y);
        //System.out.println(calculateSumArrayListHelper(y));
    }
}


这是我所看到的照片:
http://postimg.org/image/ms0y68nnh/

最佳答案

用您发布的图片很清楚。您在calculateSumArrayListHelper(x)之前呼叫addAll()。在该方法内,您可以从给定列表中删除元素。因此,在您调用y.addAll(x)时,元素已从x中删除​​。

关于java - Java ArrayList addAll仅添加1个元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36592525/

10-10 23:23