int[], Integer[], List<Integer>, List<String> 互相转换

博客总结了int[]、Integer[]、List<Integer>、List<String>四个对象间的互相转换,需用到jdk1.8的流概念。详细介绍了各对象间的转换方式,并总结注意要点,如int[]转List要用boxed转成Integer等,方便快速查阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

int[], Integer[], List<Integer>, List<String> 这四个对象直接互相转换是尤为常用的,主要是需要jdk1.8的流的概念。

这里我做了一次完整的总结,在忘记的时候,方便快速查阅。

 

1.int[ ]  转成 Integer[ ],  List<Integer>, List<String>

    /**
     * 1.
     * int[] 转成
     * Integer[]
     * List<Integer>
     * List<String>
     */
    public void intsToIntegers() {
        int[] ints = new int[]{1, 2, 3, 4};

        // 1. int[] 转成 Integer[]
        Integer[] integers = Arrays.stream(ints).boxed().toArray(Integer[]::new);

        // 2. int[] 转成 List<Integer>
        List<Integer> integerList = Arrays.stream(ints).boxed().collect(Collectors.toList());

        // 3. int[] 转成 List<String>
        List<String> strList = Arrays.stream(ints).boxed() // 一定要boxed
                .map(String::valueOf)
                .collect(Collectors.toList());
        // 转成List<Integer> 然后再用map转成String,最后用collect转成List<String>
    }

2. Integer[ ] 转成 int[ ] , List<Integer>, List<String>

 /**
     * 2.
     * Integer[] 转成
     * int[]
     * List<Integer>
     * List<String>
     */
    public void integersToInts() {
        Integer[] integers = new Integer[]{1, 2, 3, 4};

        // 1. Integer[] 转成 int[]
        int[] ints = Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();


        // 2. Integer[] 转成 List<Integer>   该list不能add, remove操作
        List<Integer> integerList = Arrays.asList(integers);


        // 3. Integer[] 转成 List<Integer>   该list支持所有操作
        List<Integer> integerList1 = new ArrayList<>(Arrays.asList(integers));


        //4. Integer[] 转成 List<String>
        List<String> strList = Arrays.stream(integers)
                .map(String::valueOf)
                .collect(Collectors.toList());
    }

 

3. List<Integer> 转成 int[], Integer[], List<String>

/**
     * 3.
     * List<Integer> 转成
     * int[]
     * Integer[]
     * List<String>
     */
    public void listToIntegersAndInts() {
        // 创建方式1
        List<Integer> list = new ArrayList() {{
            add(1);
            add(2);
            add(3);
        }};

        // 创建方式2
        List<Integer> list1 = Arrays.asList(1, 2, 3);


        // 1. List<Integer> 转成 int[]
        int[] ints = list.stream().mapToInt(Integer::valueOf).toArray(); // 转成流 再转成Integer[] 再转int


        // 2. List<Integer> 转成 Integer[]
        Integer[] integers1 = list.toArray(new Integer[0]);
        Integer[] integers2 = list.stream().toArray(Integer[]::new);


        //3. List<Integer> 转成 List<String>
        List<String> strList = list.stream()
                .map(String::valueOf)
                .collect(Collectors.toList());
    }

 

4. List<String> 转成 int[], Integer[], List<List>

    /**
     * 4.
     * List<String> 转成
     * int[]
     * Integer[]
     * List<Integer>
     */
    public void strsToIntegersAndInts() {
        List<String> strList = Arrays.asList("1", "2", "3");

        // 1.List<String> 转成 int[]
        int[] ints = strList.stream().mapToInt(Integer::valueOf).toArray(); // 和List<Integer>转换一样

        // 2.List<String> 转成 Integer[]
        Integer[] integers = strList.stream().mapToInt(Integer::valueOf).boxed().toArray(Integer[]::new);      // 和List<Integer>转换一样

        // 3.List<String> 转成 List<Integer>
        List<Integer> integerList = strList.stream()
                .mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());

        print(ints);
        print(integers);
        print(integerList);
    }

 

总结一下注意要点:

1. int[] 要转成List对象 ,一定要用boxed,转成Integer

Arrays.stream(ints).boxed().map(xxx).collection();

 

2. List<Integer> 互相转换 List<String> ,string转Integer一定要在mapToInt后,用boxed(),转成Integer


        List<String> strList = list.stream()
                .map(String::valueOf)
                .collect(Collectors.toList());

        List<Integer> integerList = strList.stream()
                .mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());

 

3.其他的话,就用stream.toArray()是返回T[] ,  stream.collect()是返回Collection对象(list, set等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值