# Java 各种数组类型的转换

# 一、基本类型数组与包装类型数组的互转

# 1.1 基本类型数组转包装类型数组

代码示例:int[] -> Integer[]

import java.util.Arrays;

/**
 * int 型数组转 Integer 包装类型数组
 *
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        int[] array = new int[]{1,2,3,4,5,6};
        Integer[] arrayInteger = Arrays.stream(array).boxed().toArray(Integer[]::new);
        System.out.println(Arrays.toString(arrayInteger)); // output: [1, 2, 3, 4, 5, 6]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 1.2 包装类型数组转基本类型数组

代码示例:Integer[] -> int[]

import java.util.Arrays;

/**
 * Integer 包装类型数组转 int 型数组
 *
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        Integer[] arrayInteger = new Integer[]{6, 5, 4, 3, 2, 1};
        int[] array = Arrays.stream(arrayInteger).mapToInt(Integer::valueOf).toArray();
        System.out.println(Arrays.toString(array)); // output: [6, 5, 4, 3, 2, 1]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 二、基本类型数组与 List 接口互转

# 2.1 基本类型数组转 List 接口

代码示例:int[] -> List<Integer>

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/**
 * int 型数组转 List 接口
 *
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        int []array = new int[]{1,2,3,4,5,6};
        List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
        System.out.println(list); // output: [1, 2, 3, 4, 5, 6]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 2.2 List 接口转基本类型数组

代码示例:List<Integer> -> int[]

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * List 接口转 int 型数组
 * 
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        int[] array = list.stream().mapToInt(Integer::intValue).toArray();
        System.out.println(Arrays.toString(array));	// output: [1, 2, 3, 4, 5]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 三、包装类型数组与 List 接口互转

# 3.1 包装类型数组转 List 接口

代码示例:Integer[] -> List<Integer>

import java.util.Arrays;
import java.util.List;

/**
 * 整型包装类型转 List 接口
 *
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        Integer[] arrayInteger = new Integer[]{6, 5, 4, 3, 2, 1};
        List<Integer> list = Arrays.asList(arrayInteger);
        // output: [6, 5, 4, 3, 2, 1]
        System.out.println(list); 
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 3.2 List 接口转包装类型数组

代码示例:List<Integer> -> Integer[]

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 *  List 接口转整型包装类型
 *
 * @author yunhu
 * @date 2022/7/4
 */

public class Test {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(6);
        list.add(4);
        list.add(5);
        Integer[] integerArray = list.toArray(new Integer[list.size()]);
        // output: [1, 2, 6, 4, 5]
        System.out.println(Arrays.toString(integerArray));
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24