java 数组转为 list ---- 今天发现用 Arrays.asList(array) 将数组转为 list 之后,再去操作它会报错

本文介绍了一种避免使用Arrays.asList方法转换数组为List时出现的问题,通过自定义方法实现更稳定的数组到List的转换,并提供了List转数组的实用代码。

java 数组转为 list :

今天发现用 Arrays.asList( array ) 将数组转换为 list,用转换出来的 list 再做 addAll( anotherList ) 操作会导致报错。

然后自己写了一个 数组转换 list 的方法,转换出来的 list 再做 addAll( anotherList ) 操作就不报错。

所以,以后弃用 Arrays.asList( array ) 这个数组转为 list 的方法,用自己写的这个方法:

    // 数组转为 List  
    public static List<String> arrToList(String[] resArr){
        List<String> returnList = new ArrayList<>();

        for(int j = 0; j<resArr.length; j++){
            returnList.add(resArr[j]);
        }

        return returnList;
    }

 

    // List 转为数组
    public static String[] listToArr( List<String> list ) {
        String[] arr = new String[ list.size() ];

        for ( int j = 0; j < list.size(); j++ ) {
            arr[j] = list.get( j );
        }

        return arr;
    }
 

### 将数组换为ListJava中,可以使用`Arrays.asList()`方法将数组换为`List`。需要注意的是,这种方法返回的`List`是固定大小的,并且不能进行修改操作(如添加或删除元素),否则会抛出`UnsupportedOperationException`异常。如果需要一个可变的`List`,可以将其传递给`ArrayList`的构造函数来创建一个新的`ArrayList`实例。 ```java String[] array = {"A", "B", "C"}; List<String> list = new ArrayList<>(Arrays.asList(array)); ``` 此方法适用于所有类型的数组,包括基本数据类型和对象数组 [^1]。 ### 将List换为数组 将`List`换为数组时,通常使用`List`接口提供的`toArray()`方法。由于`List`是泛型的,因此需要指定数组的类型和大小。可以通过传递一个与`List`相同类型的空数组来实现这一点,这样可以确保返回的数组类型正确。 ```java List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); String[] array = list.toArray(new String[0]); ``` 这种方法能够保证返回的数组类型正确,并且可以进行修改操作 [^2]。 ### 示例代码 #### 数组List ```java import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class ArrayToListExample { public static void main(String[] args) { String[] array = {"A", "B", "C"}; List<String> list = new ArrayList<>(Arrays.asList(array)); System.out.println(list); } } ``` #### List数组 ```java import java.util.ArrayList; import java.util.List; public class ListToArrayExample { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); String[] array = list.toArray(new String[0]); for (String s : array) { System.out.println(s); } } } ``` ### 注意事项 - 使用`Arrays.asList()`创建的`List`是固定大小的,不能进行添加或删除操作- `List`的`toArray()`方法需要传入一个与`List`相同类型的数组,推荐使用空数组`new T[0]`的形式,这样可以简化代码并确保类型安全 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值