0
点赞
收藏
分享

微信扫一扫

Java 数组与ArrayList的互转


数组 转 List

数组转其他,都要借助​​Arrays​​工具类:

  • 如果是引用类型数组,则可以直接用​​Arrays.asList​​;
  • 如果是基本类型数组,则要转为​​Arrays.stream​​:

引用类型数组 Integer[] 转 List

Integer[] array = new Integer[]{1,2,3};
List<Integer> list = Arrays.asList(array );

基本类型数组 int[] 转 List

  1. 使用​​Arrays.stream​​​将​​int[]​​​转换成​​IntStream​
  2. 使用​​IntStream​​​中的​​boxed()​​​装箱。将​​IntStream​​​转换成​​Stream<Integer>​
  3. 使用​​Stream​​​的​​collect()​​​,将​​Stream<T>​​​转换成​​List<T>​​​,因此正是​​List<Integer>​

int[] array = new int[]{1,2,3};
// Arrays.stream(arr) 可以替换成IntStream.of(arr)
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());

基本类型数组 int[] 转 引用类型数组 Integer[]

int[] array = new int[]{1,2,3};
// 使用Stream的toArray,传入IntFunction<A[]> generator
// 不然默认是Object[]
Integer[] integer = Arrays.stream(array).boxed().toArray(Integer[]::new);

引用类型数组 Integer[] 转 基本类型数组 int[]

Integer[] integer = new Integer[]{1,2,3};
int[] array = Arrays.stream(integer).mapToInt(Integer::intValue).toArray();

List 转 数组

List 转 引用类型数组Integer[]

List<Integer> list = new ArrayList<>();
Integer[] integers = list.toArray(new Integer[0]);

List 转 基本类型数组 int[]

List<Integer> list = new ArrayList<>();
int[] array = list.stream().mapToInt(Integer::intValue).toArray();


举报

相关推荐

0 条评论