使用 toArray() 方法可将集合转为数组,推荐调用带参数的 toArray(T[]) 并传入长度为0的目标类型数组(如 new String[0]),以确保类型安全且性能更优。
在Java中,将集合转换为数组是一个常见操作,主要通过集合的 toArray() 方法实现。根据需求不同,可以采用不同的方式来确保类型安全和代码简洁。
使用 toArray() 无参方法
这是最简单的方式,调用集合的 toArray() 方法会返回一个 Object[] 数组。
注意:返回的是 Object 类型数组,不能直接强转为具体类型的数组(如 String[]),否则会抛出 ClassCastException。示例:
Listlist = Arrays.asList("a", "b", "c"); Object[] array = list.toArray(); // 正确:array 是 Object[] // 错误:(String[]) list.toArray() 会报错
使用带参数的 toArray(T[])
推荐方式是使用 toArray(T[] a) 方法,传入一个目标类型的数组。这样可以得到指定类型的数组,避免类型问题。
如果传入的数组长度足够,结果会存入该数组;如果不够,会创建一个新的同类型数组。
示例:
- List
list = Arrays.asList("apple", "banana", "cherry"); - String[] arr = list.toArray(new String[0]); // 推荐写法
处理自定义对象类型
对于自
定义类也适用相同方法。只要保证泛型一致即可。
例如:
- List
people = new ArrayList(); - people.add(new Person("Alice"));
- Person[] persons = people.toArray(new Person[0]);
这样就能安全地获得 Person 类型的数组。
基本上就这些。使用 collection.toArray(new Type[0]) 是最佳实践,类型安全又高效。不复杂但容易忽略细节。








