【java实现数组和List的互相转换?】

数组转换为List

在Java 8及更高版本中,可以使用Arrays.stream()方法和Collectors.toList()来将数组转换为List。这里以Integer数组为例:

import java.util.Arrays;  
import java.util.List;  
import java.util.stream.Collectors;  
  
public class ArrayToListExample {  
    public static void main(String[] args) {  
        Integer[] array = {1, 2, 3, 4, 5};  
  
        List<Integer> list = Arrays.stream(array)  
                                   .collect(Collectors.toList());  
  
        System.out.println(list); // 输出: [1, 2, 3, 4, 5]  
    }  
}

对于非流操作(比如Java 7或更低版本),你可以使用Arrays.asList()方法,但需要注意的是,这个方法返回的是一个固定大小的List,不支持添加或删除元素。如果你需要一个可以修改的List,可以将其转换为ArrayList:

import java.util.Arrays;  
import java.util.ArrayList;  
import java.util.List;  
  
public class ArrayToListExample {  
    public static void main(String[] args) {  
        Integer[] array = {1, 2, 3, 4, 5};  
  
        // Arrays.asList() 返回的List是固定大小的  
        List<Integer> fixedSizeList = Arrays.asList(array);  
  
        // 转换为ArrayList以支持修改  
        List<Integer> modifiableList = new ArrayList<>(fixedSizeList);  
  
        System.out.println(modifiableList); // 输出: [1, 2, 3, 4, 5]  
    }  
}

List转换为数组

将List转换为数组可以使用List.toArray()方法,但如果你需要转换为特定类型的数组(如Integer[]),可以使用toArray(T[] a)方法,并传入一个正确类型和长度的空数组:

import java.util.Arrays;  
import java.util.List;  
import java.util.ArrayList;  
  
public class ListToArrayExample {  
    public static void main(String[] args) {  
        List<Integer> list = new ArrayList<>();  
        list.add(1);  
        list.add(2);  
        list.add(3);  
        list.add(4);  
        list.add(5);  
  
        // 转换为数组  
        Integer[] array = list.toArray(new Integer[0]); // 也可以传入list.size()长度的数组,但0长度足以  
  
        System.out.println(Arrays.toString(array)); // 输出: [1, 2, 3, 4, 5]  
    }  
}

注意:在list.toArray(new Integer[0])中,我们传入了一个长度为0的Integer数组。虽然这样做在功能上没有问题,但传入一个与List大小相同的数组可以避免不必要的数组复制操作,从而提高性能。然而,在大多数情况下,由于性能差异很小,并且代码简洁性更重要,因此通常使用长度为0的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值