您的位置:

Javalist转Array的实现方法

一、List转换为数组的方法

在Java中,List和数组是常见的数据结构之一。在我们处理数据的时候,有时候需要将List转换成数组。这时候我们可以使用List提供的toArray()方法。该方法将List转换为数组。

List myList = new ArrayList<>();

myList.add("苹果");
myList.add("橘子");
myList.add("香蕉");

String[] myArray = myList.toArray(new String[0]);

  

上述代码中,我们将一个String类型的List转换成了一个String类型的数组。

这里需要注意的是,在toArray()方法中需要传入一个空数组。空数组的作用是确定返回的数组类型,如果传入一个非空数组,则返回的数组类型为传入类型,如果传入的数组长度不够,则需要重新创建一个数组,空数组则不需要重新创建,可以节省空间。

二、数组转换为List的方法

除了可以将List转换为数组,我们也可以将数组转换为List。这时候可以使用Arrays类提供的asList()方法。

String[] strArray = new String[] { "苹果", "橘子", "香蕉" };

List strList = Arrays.asList(strArray);

  

上述代码中,我们定义了一个String类型的数组,然后使用Arrays.asList()方法将该数组转换成一个List。

需要注意的是,asList()方法返回的List是一个不可变的List,不能进行add,remove等操作。如果需要对List进行修改,则需要将其转换成ArrayList等可变List后再进行操作。

三、List和数组的互相转换

当然,我们也可以通过循环遍历的方式将List转换成数组,或者通过Arrays.asList()方法将数组转换成List,但这些方法有时候比较麻烦。那有没有一种方法可以让我们在List和数组之间自由转换呢?答案是有的。

我们可以定义一个工具类,其中包含两个方法:一个将List转换成数组,另一个将数组转换成List。

public class ConvertUtils {

    public static  T[] listToArray(List
    list, T[] array) {
        return list.toArray(array);
    }

    public static 
     List
      arrayToList(T[] array) {
        return new ArrayList<>(Arrays.asList(array));
    }
}

     
    
   
  

上述代码中,我们定义了一个方法listToArray,该方法接收一个List对象和一个数组对象,调用List的toArray()方法将List转换成数组。同时该方法使用了泛型,可以处理任意类型的List。

我们还定义了一个方法arrayToList,该方法接收一个数组对象,并使用Arrays.asList()方法将其转换成一个List对象。

这样,当我们需要将List转换成数组时,可以直接调用listToArray()方法,需要将数组转换成List时,可以直接调用arrayToList()方法。

四、总结

本文介绍了List与数组之间的相互转换方法,包括List提供的toArray()方法、Arrays类提供的asList()方法,以及手动实现的工具类的方法。这些转换方法在Java程序中经常用到,可以提高我们对数据的处理效率和便捷性。

完整代码如下:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ConvertUtils {

    public static void main(String[] args) {
        // List to array
        List myList = new ArrayList<>();
        myList.add("苹果");
        myList.add("橘子");
        myList.add("香蕉");
        String[] myArray = listToArray(myList, new String[0]);
        System.out.println(Arrays.toString(myArray));

        // Array to list
        String[] strArray = new String[] { "苹果", "橘子", "香蕉" };
        List
    strList = arrayToList(strArray);
        System.out.println(strList);
    }

    public static 
     T[] listToArray(List
      list, T[] array) {
        return list.toArray(array);
    }

    public static 
       List
       
        arrayToList(T[] array) { return new ArrayList<>(Arrays.asList(array)); } }