在将数组添加到链表时出现uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
错误
这是我的工作
LinkedList main_list = new LinkedList();
int arr = new int[2]
arr[0] = 0;
arr[1] = 1;
main_list.add(arr);
答案 0 :(得分:2)
编译器警告消息表示您尝试执行的操作不安全!
如果您使用的是不带类型说明符的集合,则在Java 5及更高版本中会出现此问题。 (请参见generics)
在这里您正在创建LinkedList()
,但未指定其类型。这意味着编译器无法使用泛型以类型安全的方式检查您是否正在使用集合。
您应通过指定其类型,如下所示创建它。
LinkedList<int[]> myList = new LinkedList<>();
答案 1 :(得分:1)
您只可以列出一个Interger数组:
LinkedList <int[]> main_list = new LinkedList <>();
int[] arr = {0,1};
int[] arr2 = {2,3};
main_list.add(arr);
main_list.add(arr2);
使用这种结构,您所有的Integer数组都将保留其初始边界,并且结果将不会存储在较长的平面列表中。您可以独立访问它们以供以后使用。
答案 2 :(得分:0)
首先将数组转换为列表,然后将其添加到列表中。如果您的数组仅包含Integers
,则可以创建Integer List和Integers数组。喜欢
Integer[] arr = new Integer[2];
arr[0] = 0;
arr[1] = 1;
List<Integer> main_list = new LinkedList<>();
main_list.add(Arrays.asList(arr));
它将起作用。或者,如果您想将数组保存在行列表的每个索引处,则必须创建数组的数组列表 整数。像
List<Integer[]> main_list = new LinkedList<>();
Integer[] arr = new Integer[2];
arr[0] = 0;
arr[1] = 1;
main_list.add(arr);
答案 3 :(得分:0)
您可以使用Arrays.asList(arr)
直接添加它。您可以使用asList()
函数将Array直接转换为列表。使用以下代码:
LinkedList main_list = new LinkedList(Arrays.asList(arr));