如何在没有警告/错误的情况下将数组转换为ArrayList?

时间:2012-06-28 06:28:19

标签: java arrays arraylist compiler-warnings

所以,我有点问题。我正在尝试将整数数组(称为list)转换为ArrayList(称为arrList)。下面显示的代码工作正常:

java.util.ArrayList arrList = new java.util.ArrayList(Arrays.asList(list));

但是,编译时有一个警告:上面的行被报告为使用“未经检查或不安全的操作。”

不幸的是,我似乎无法处理这个警告。由于这是家庭作业,因此部分标准是无警告。有没有什么办法可以在没有警告/错误的情况下将数组转换为ArrayList?

5 个答案:

答案 0 :(得分:34)

确保使用正确的“数组”导入。默认情况下,我的Eclipse将尝试导入“edu.emory.mathcs.backport.java.util”。确保它只是标准的“java.util”版本,您应该执行以下操作:

    String[] arr = new String[]{"one", "two", "three"};
    List<String> list = Arrays.asList(arr);

答案 1 :(得分:3)

Collections.addAll(targetList, sourceArray); 

尝试以上解决方案。它应该工作

答案 2 :(得分:2)

由于您的list似乎是int而不是Integer的数组,因此您需要循环它们。请尝试以下方法:

List<Integer> intList = new ArrayList<Integer>(list.length);
for (int i: list) {
  intList.add(i);
}

答案 3 :(得分:0)

如果您的答案不仅限于一行,那么最防伪的方式是:

java.util.ArrayList<Integer> arrList = new java.util.ArrayList<Integer>();
for (int x : arrList) {
    arrList.add(x);
}

答案 4 :(得分:-2)

通常在您构建原始类型的集合时发出此警告。即,您不定义它将包含的对象类型。

java.util.ArrayList arrList = new java.util.ArrayList(Arrays.asList(list));// issues warning as you made ArrayList of raw type.

要克服它,只需在ArrayList声明中添加对象类型。

java.util.ArrayList<Integer> arrList = new java.util.ArrayList(Arrays.asList(list));