我是靠谱客的博主 正直玫瑰,最近开发中收集的这篇文章主要介绍Java中Integer[]、int[]、List互转,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • List<Integer> 或者 Integer[]转换为int[] :首先要调用stream()方法将其转换为Stream<Integer>,再使用mapToInt()将其转换为IntStream,最后使用toArray()即可转换为int[]。

  • int[]转换为List<Integer>或者Integer[]:首先调用Arrays.stream()方法,将int[]转化为IntStream,再用boxed()对其封装转化为Stream<Integer>,再转换为List<Integer>或者toArray()后进行类型转换变为Integer[]。

  • List<Integer>Integer[]的相互转换:直接使用toArray()或者Arrays.asList()方法。不过要注意Object[]到Integer[]的类型转换。

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
public class Test {
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
 
        // int[] 转 List<Integer>
        // Arrays.stream将int[]转化为IntStream
        // boxed()装箱,将IntStream转化为Stream<Integer>
        // collect将Stream<Integer>转化为List<Integer>
        List<Integer> list1 = Arrays.stream(arr1).boxed().collect(Collectors.toList());
        
 
        // int[] 转 Integer[]
        // 方法同上,在boxed()装箱这一步时已经转化为了Stream<Integer>
        // 使用toArray()函数将其转化为数组
        // 数组类型是Object[],所以最后进行类型转换 
        Integer[] integers1 = Arrays.stream(arr1).boxed().toArray(Integer[]::new);
        // 或者
        // Integer[] integers1 = (Integer[])Arrays.stream(arr1).boxed().toArray();
 
        
        // List<Integer> 转 Integer[]
        // 使用toArray()之后进行类型转换
        Integer[] integers2 = list1.toArray(new Integer[]{});
        // 或者
        // Integer[] integers2 = (Integer [])list1.toArray();
        
 
        // List<Integer> 转 int[]
        // stream()先将List转换为Stream<Integer>
        // 再通过mapToInt(),使用Integer::valueOf方法,将Stream<Integer>转换为IntStream
        // IntStream的toArray()方法默认将其转化为int[]
        int[] arr2 = list1.stream().mapToInt(Integer::valueOf).toArray();
        
 
        // Integer[] 转 int[]
        // 思路同上,先将Integer[]转成Stream<Integer>,再转成IntStream。
        int[] arr3 = Arrays.stream(integers1).mapToInt(Integer::valueOf).toArray();
        
 
        // Integer[] 转 List<Integer>
        // 直接调用Arrays.asList()方法即可
        List<Integer> list2 = Arrays.asList(integers1);
 
    }
}

最后

以上就是正直玫瑰为你收集整理的Java中Integer[]、int[]、List互转的全部内容,希望文章能够帮你解决Java中Integer[]、int[]、List互转所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部