Java 实例 - int数组转化成List简便的方法(互转)

Java实例大全  

jar包地址:https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.7 

    @Test
    public void test5(){
        int[] array = {1, 2, 5, 5, 5, 5, 6, 6, 7, 2, 9, 2};

        /*int[]转list*/
        //方法一:需要导入apache commons-lang3  jar 
        List<Integer> list = Arrays.asList(ArrayUtils.toObject(array));
        //方法二:java8及以上版本
        List<Integer> list1 = Arrays.stream(array).boxed().collect(Collectors.toList());

        /*list转int[]*/
        //方法一:
        Integer[] intArr =  list.toArray(new Integer[list.size()]);
        //方法二:java8及以上版本
        int[] intArr1 =  list.stream().mapToInt(Integer::valueOf).toArray();
        
    }

 

### Java 8 中将数组转换为 List方法Java 8 中,`Arrays.asList()` 方法提供了一种便捷的方式将数组转换成 `List`。然而需要注意的是,通过这种方式创建的列表具有固定大小,不允许添加或移除元素操作,否则将会抛出 `UnsupportedOperationException`[^1]。 对于基本数据类型的数组(如 `int[]`),直接调用 `Arrays.asList()` 并不会得到预期的结果,因为这会被视为单个对象而非拆分成多个元素组成的集合。因此,在处理这种情况时,通常建议先将基础类型数组转化为对应的封装类数组再进行转换: ```java // 错误示范:不适用于原始类型数组 int[] primitiveArray = {1, 2, 3}; List<Integer> wrongConversion = Arrays.asList(primitiveArray); System.out.println(wrongConversion); // 输出: [[I@hashcode] // 正确做法:使用流式API配合boxed()方法来完成转型 import java.util.stream.Collectors; import java.util.Arrays; Integer[] boxedArray = new Integer[]{1, 2, 3}; List<Integer> correctConversion = Arrays.stream(boxedArray).collect(Collectors.toList()); System.out.println(correctConversion); // 输出: [1, 2, 3] ``` 如果确实需要一个支持动态修改功能的 `ArrayList` 实例,则可以在上述基础上进一步构造新的 `ArrayList` 对象: ```java import java.util.ArrayList; import java.util.Arrays; String[] stringArray = {"a", "b", "c"}; ArrayList<String> arrayListFromStringArray = new ArrayList<>(Arrays.asList(stringArray)); arrayListFromStringArray.add("d"); // 这里可以正常工作 System.out.println(arrayListFromStringArray); // 输出: [a, b, c, d] ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值