Java - 如何将数组的每个元素复制到ArrayList?

时间:2016-02-01 00:40:07

标签: java arrays arraylist

为什么这不起作用

import java.util.ArrayList;
public class Vector 
{
    ArrayList<Long> vector;
    public Vector(long ...vector)
    {
        for (long value : vector)
            this.vector.add(new Long(value));
    }
}

当我创建像Vector a = new Vector(4,7,8);这样的新对象时,它会说

java.lang.NullPointerException

我尝试了Arrays.asList(array);

for (int i=0;i<vector.lenght;i++)
    this.vector.add(vector[i])

和同样的错误

1 个答案:

答案 0 :(得分:1)

您的代码几乎是正确的,因为要正确编写要复制到arraylist的代码。但是,错误是NullPointerException的事实让我们知道某些东西在它应该不存在的地方是空的。在这种情况下,vector本身为null,因为它从未被赋值。您可以声明vector并使用ArrayList<Long> vector = new ArrayList<>();在构造函数中指定vector = new ArrayList<>();进行分配。

注意:<>钻石简写是Java 7及更高版本中可用的泛型类型的简写。如果定位到Java 6,请在右侧使用new ArrayList<Long>();