今天在做LeetCode的时候,遇到了一个类型转换的坑,在此记录一下。
https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
两个数组的交集2
使用ArrayList保存交集数据后,需要return一个int类型的数组,但是ArrayList中保存的是Integer类型,在网路搜索一轮几乎都是举String作为例子来实行转换,如:
String[] strArr = null;
strArr = strList.toArray(new String[strList.size()]);
System.out.println(Arrays.toString(strArr));
但是这种方法对于int类型不起作用,起初在这里懵逼了很久,最后使用了最原始的方法,将ArrayList遍历一遍同时把数据存入新的数组中。
如:
int[] nums3 = new int[arrayList.size()];
for(int k = 0; k < arrayList.size(); k++){
nums3[k] = (int)arrayList.get(k);
}
最终得以解决。
在网路上继续搜寻,发现了JAVA8可以使用stream来实现此功能:
int[] intArr = list.stream().mapToInt(Integer::intValue).toArray();