int[] ary = {5,7,2,4,3,1};
//想用Arrays.asLis()方法转成集合,结果不行,泛型就不对
List<int[]> ints = Arrays.asList(ary);
泛型不能使用基本数据类型
可以导入org.apache.commons.lang3.ArrayUtils;
List<Integer> list = Arrays.asList(ArrayUtils.toObject(ary));
还有别的方法吗?
List<Integer> list1 = Arrays.stream(array).boxed().collect(Collectors.toList());
boxed()是干什么的呢
1.首先要了解 IntStream是int类型的流。stream<Integer 是Integer类型的流。
2再看boxed()方法的实现
@Override public final Stream<Integer> boxed() { return mapToObj(Integer::valueOf); }
IntStream是存的是int类型的stream,而Steam是一个存了Integer的stream。boxed的作用就是将int类型的stream转成了Integer类型的Stream。
看完int[] 转List 再看list转int[]
Integer[] intArr = list.toArray(new Integer[list.size()]);
或者
int[] intArr1 = list.stream().mapToInt(Integer::valueOf).toArray();
.mapToInt()返回IntStream