8

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

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

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

不幸的是,我似乎无法处理这个警告。由于这是一项家庭作业,部分标准是没有警告。有什么方法可以将数组转换为 ArrayList 而不会出现警告/错误?

4

5 回答 5

43

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

    String[] arr = new String[]{"one", "two", "three"};
    List<String> list = Arrays.asList(arr);
于 2016-06-21T20:48:53.450 回答
5
Collections.addAll(targetList, sourceArray); 

试试上面的解决方案。它应该工作

于 2012-06-28T06:34:06.347 回答
1

由于您list似乎是一个数组int而不是Integer,因此您需要遍历它们。尝试以下操作:

List<Integer> intList = new ArrayList<Integer>(list.length);
for (int i: list) {
  intList.add(i);
}
于 2012-06-28T06:36:38.287 回答
0

如果您的答案不仅限于一行,那么最安全的方法是:

java.util.ArrayList<Integer> arrList = new java.util.ArrayList<Integer>();
for (int x : arrList) {
    arrList.add(x);
}
于 2012-06-28T06:41:33.300 回答
-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));
于 2012-06-28T06:48:09.693 回答