在Java中如何将集合转换为数组输出

Java中集合转数组常用toArray()方法:1. 直接调用返回Object[];2. 传入类型数组如new String[0]可得指定类型数组;3. 基本类型需通过Stream转换;4. Set转换方式与List相同,但不保证顺序。

在Java中,将集合转换为数组是一个常见的操作,通常使用集合的 toArray() 方法来实现。根据集合类型(如 List、Set 等)的不同,转换方式基本一致。下面介绍几种常用的方法。

1. 使用 toArray() 方法转换为 Object 数组

这是最简单的方式,适用于任意集合,但返回的是 Object 类型数组,不能直接当作具体类型使用。

示例:

List list = Arrays.asList("apple", "banana", "orange");
Object[] array = list.toArray();
for (Object obj : array) {
    System.out.println(obj);
}

2. 转换为指定类型的数组

为了获得特定类型的数组(如 String[]),需要传入一个相应类型的数组作为参数。

示例:

List list = Arrays.asList("apple",

"banana", "orange"); String[] array = list.toArray(new String[0]); for (String str : array) { System.out.println(str); }

说明: 传入 new String[0] 是推荐写法,Java 会根据集合大小自动创建合适长度的数组。也可以传入一个足够大的数组,如 new String[list.size()]

3. 处理基本数据类型集合(如 int)

List 不支持基本类型,通常使用包装类(如 Integer),转换后需注意类型。

示例:

List intList = Arrays.asList(1, 2, 3, 4);
Integer[] intArray = intList.toArray(new Integer[0]);
for (Integer num : intArray) {
    System.out.println(num);
}

注意: 如果需要 int[] 而不是 Integer[],需手动遍历转换或使用 Java 8 的 Stream:

int[] primitiveArray = intList.stream().mapToInt(Integer::intValue).toArray();

4. Set 集合的转换方式

Set 转数组与 List 基本相同,只是元素顺序不保证。

示例:

Set set = new HashSet<>(Arrays.asList("a", "b", "c"));
String[] array = set.toArray(new String[0]);
for (String s : array) {
    System.out.println(s);
}
基本上就这些常见用法。关键是根据集合元素类型选择合适的 toArray(T[]) 方法,并注意基本类型和包装类的区别。