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

本文介绍了如何在Java中将List<Integer>、Integer[]转换为int[],以及将int[]转换回List<Integer>或Integer[]。主要涉及了Java 8的Stream API,包括stream()、mapToInt()、boxed()、toArray()等方法的应用,以及类型转换的操作。
摘要由CSDN通过智能技术生成
  • 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);
 
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值