所以,我有点问题。我正在尝试将整数数组(称为list
)转换为ArrayList
(称为arrList
)。下面显示的代码工作正常:
java.util.ArrayList arrList = new java.util.ArrayList(Arrays.asList(list));
但是,编译时有一个警告:上面的行被报告为使用“未经检查或不安全的操作。”
不幸的是,我似乎无法处理这个警告。由于这是家庭作业,因此部分标准是无警告。有没有什么办法可以在没有警告/错误的情况下将数组转换为ArrayList?
答案 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));