关于Java ArrayList

每次刷题,都被这个东西坑,很烦,特此记录。

int[] 转 List<Integer> 转不了 需要Integer[] 转 List<Integer>。 直接用int[] 转过去 是List<int[]>。

Integer[] a = {1,2,3};
List<List<Integer>> rs = new ArrayList<>();
List<Integer> r = Arrays.asList(a);

List<Integer> 转 Integer[]

Integer[] b = r.toArray(new Integer[3]);

上面的不是重点,重点在于:

如果这样添加数据:

rs.add(r);
r进行一些列操作
rs.add(r);

最终rs里面的两个r是一样的,指向同一个r
因为没有new嘛

所以正确操作应该是

rs.add(new ArrayList(r));
r进行一些列操作
rs.add(new ArrayList(r));

在添加之前按 根据结果创建一个新的List添加进去

 

点赞