每次刷题,都被这个东西坑,很烦,特此记录。
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添加进去