用法介绍Java List的toArray方法
- 编程知识
- 2023-09-18
- 2
List.toArray()方法在Java编程中十分常用。它主要用于将List转换为数组。
一、基本用法和说明
Java中的List接口拥有一个名为toArray的方法,它能够将List转化为一个数组。该方法存在两种形式:
- Object[] toArray() : 这个方法返回一个新的Object数组,包含了List中所有的元素。数组的类型是Object,因此,我们需要将它转换为实际的类型。
T[] toArray(T[] arrayToFill) : 这个方法返回一个新的、和提供的数组类型相同的数组,包含List中所有元素。如果List的大小超过了提供的数组的长度,那么会创建一个新的数组,长度和List的大小相同;否则,将在提供的数组中存放List的元素。
Listlist = new ArrayList(); list.add("A"); list.add("B"); list.add("C"); // 转换为Object类型的数组 Object[] objectArray = list.toArray(); System.out.println(Arrays.toString(objectArray)); // 转换为String类型的数组 String[] stringArray = list.toArray(new String[0]); System.out.println(Arrays.toString(stringArray));
二、注意事项
在使用 toArray() 方法时,需注意以下几点:
- 如果 List 中存储的元素为自定义类型,那么在使用 toArray() 时,需要提供该类型的数组,否则会发生 ClassCastException。
- 如果考虑到性能优化,理论上当 List 的长度超过了原数组长度时,toArray(T[] array) 方法会新建一个同类型和 List 长度相同的数组。但实际JDK源码实现,新创建数组的长度为原数组长度的1.5倍,只有在长度还不足以存储 List 中的所有元素时,才会创建长度相同的新数组。
Listlist = new ArrayList(); list.add(new Cat("Tom")); list.add(new Cat("Jerry")); // 正确的用法 Cat[] cats = list.toArray(new Cat[0]); System.out.println(Arrays.toString(cats)); // 错误的用法,会抛出ClassCastException Object[] objects = list.toArray(); Cat[] wrongCats = (Cat[]) objects;