我在java编码,我有三个数组,我有一个列表列表。
int[] recovery=bl.generateRecovery();
int[] periods = bl.generatePeriods(recovery);
int[] deadlines = bl.generateDeadlines(periods);
List<List<Integer>>temp=new ArrayList<List<Integer>>();
现在我想将数组添加为列表中的列表。
我尝试使用:
temp.add(Arrays.asList(recovery));
但它失败了。 有人能告诉我该怎么做吗?
答案 0 :(得分:3)
Arrays.asList(recovery)
会为您提供List<int[]>
个对象,而非List<Integer>
。请尝试使用Integer[] recovery
。
编辑:
您可能希望使用generateRecovery
等方法返回List<Integer>
而不是int[]
。数组不灵活,通常最好使用List
。
答案 1 :(得分:3)
您可以在int[]
Arrays.stream
上使用boxed
并将其作为List
收集为:
temp.add(Arrays.stream(recovery).boxed().collect(Collectors.toList()));
答案 2 :(得分:0)
您正在尝试融合两种不同的类型(int []和ArrayList&lt;&gt;)。 它们不一样,你必须将数组统一到其中一种类型。
int[] recovery= {1,2,3};
List<int[]>temp=new ArrayList<>();
temp.add(recovery);
System.out.println(temp.get(0)[1]);
此代码打印2。