Leetcode 349号问题
来源:7-8 映射的复杂度分析和更多映射相关问题
李爽爽爽爽
2018-09-13
老师您好,请问一下,前面已经得到一个ArrayList(Interger),还需要转化成int[],这个Interger和int能不能自动转换?
写回答
1回答
-
liuyubobobo
2018-09-14
Java语法问题:)
int和Integer之间可以无碍的自由转换,但是Integer[]和int[]之间不可以。所以一个ArrayList<Integer> list不能通过list.toArray()直接赋值给int[],强转也不行。以下代码都是错误的:
ArrayList<Integer> list = new ArrayList<>(); for(int i = 1; i <= 6; i ++) list.add(i); // int[] a = list.toArray(); // 错误:Object[]不能赋值给int[] // int[] a = (Integer[])list.toArray(); // 错误:Integer[]不能赋值给int[] // int[] a = (int[])list.toArray(); // 错误:Integer[]不能强制类型转化为int[]
如果不使用第三方库,你只能重新遍历一遍list,创建int[]类型:
int[] a = new int[list.size()]; for(int i = 0; i < list.size(); i ++) a[i] = list.get(i);
可以参考我的这个问题的Java代码:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0349-Intersection-of-Two-Arrays/java-0349/src/Solution.java
加油!:)
012018-09-14
相似问题