您的位置:

Java ArrayList 转数组

一、ArrayList 和数组简介

ArrayList是Java中的一种集合,它可以容纳多个对象,并且可以动态地调整自己的大小。相对而言,数组是一种更为基础的数据结构,数组长度大小是固定的,无法动态调整。但是,有些时候我们需要将ArrayList转化为数组来使用,本文将详细介绍Java中如何进行ArrayList和数组之间的转换。

二、ArrayList 转数组

对于ArrayList转换为数组,Java中提供了一个toArray()方法来完成这个操作。toArray()方法有两种重载方式,分别是无参和带参的。在无参情况下,toArray()方法会返回一个与ArrayList类型相同的Object类型的数组,这个数组的长度与ArrayList的元素数量相同。在带参情况下,toArray()方法接收一个指定类型的数组作为输入,将ArrayList中的元素复制到输入数组中。

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

public class ArrayListToArrayExample {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList<>();
        arrayList.add("Java");
        arrayList.add("is");
        arrayList.add("awesome");
        
        // 无参 toArray() 方法
        Object[] objectArray = arrayList.toArray();
        System.out.println("Object Array Output:");
        System.out.println(Arrays.toString(objectArray));
        
        // 带参 toArray() 方法
        String[] stringArray = new String[arrayList.size()];
        stringArray = arrayList.toArray(stringArray);
        System.out.println("String Array Output:");
        System.out.println(Arrays.toString(stringArray));
    }
}

  

当我们运行上面的代码时,将输出以下结果:

Object Array Output:
[Java, is, awesome]
String Array Output:
[Java, is, awesome]

三、注意点

在对ArrayList进行数组转换时,需要注意以下几个点:

1. ArrayList转换为数组时,输入数组的长度不能小于ArrayList的元素数量,否则会抛出ArrayStoreException异常。

2. 若输入数组的长度大于ArrayList的元素数量,转换结果会将元素之后的元素设置为null或者默认值。

3. toArray()方法返回的数组是原始类型,需要进行类型转换才能使用。

四、结语

本文介绍了Java中ArrayList和数组之间的转换方法,这对于在开发中需要对数据进行数组操作时较为有用。但是,在进行转换时需要注意参数的类型和是否越界等问题。

完整代码:

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

public class ArrayListToArrayExample {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList<>();
        arrayList.add("Java");
        arrayList.add("is");
        arrayList.add("awesome");
        
        // 无参 toArray() 方法
        Object[] objectArray = arrayList.toArray();
        System.out.println("Object Array Output:");
        System.out.println(Arrays.toString(objectArray));
        
        // 带参 toArray() 方法
        String[] stringArray = new String[arrayList.size()];
        stringArray = arrayList.toArray(stringArray);
        System.out.println("String Array Output:");
        System.out.println(Arrays.toString(stringArray));
    }
}