Java中Integer[]、int[]、List互转

本文总结了Java中Integer[]、int[]与List<Integer>之间的转换方法。通过stream()、mapToInt()、boxed()和toArray()等方法,实现不同类型数组间的灵活转换,特别强调了类型转换的注意事项。
部署运行你感兴趣的模型镜像
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);

    }
}

总结

  1. 将List<Integer> 或者 Integer[]转换为int[] :首先要调用stream()方法将其转换为Stream<Integer>,再使用mapToInt()将其转换为IntStream,最后使用toArray()即可转换为int[]。
  2. 将int[]转换为List<Integer>或者Integer[]:首先调用Arrays.stream()方法,将int[]转化为IntStream,再用boxed()对其封装转化为Stream<Integer>,再转换为List<Integer>或者toArray()后进行类型转换变为Integer[]。
  3. List<Integer>与Integer[]的相互转换:直接使用toArray()或者Arrays.asList()方法。不过要注意Object[]到Integer[]的类型转换。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值