📜  使用示例在Java中流式传输 toArray()(1)

📅  最后修改于: 2023-12-03 15:22:25.652000             🧑  作者: Mango

Java中流式传输toArray()的使用示例

在Java 8中,流(Stream)是一个非常强大的概念。它允许我们以非常简单的方式操作集合中的元素。但是,有时可能需要将流的结果转换为数组。在这种情况下,Java中的流式传输toArray()方法可以派上用场。

toArray()方法的简介

toArray()方法是Java流Stream接口的一个方法,它的主要作用是将流的结果转换为数组。该方法有多个重载方式,可以带有参数或者不带参数。

toArray()方法不带参数的用法

不带参数的toArray()方法的原型如下:

Object[] toArray();

这个方法将执行以下操作:

  1. 创建一个具有与流中相同类型的新数组。
  2. 将流中的元素按顺序复制到数组中。
  3. 将此新数组作为结果返回。

示例代码:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Object[] numberArray = numbers.stream().toArray();
带参数的toArray()方法的用法

toArray()方法还可以带有一个参数:

<T> T[] toArray(T[] a);

该方法执行以下操作:

  1. 创建一个类型为T的数组a。
  2. 如果数组a足够大,它会将流中的元素按顺序复制到数组a中。如果数组a不够大,方法将创建一个新的具有相同类型的数组,并将流中的元素复制到该数组中。
  3. 返回新的数组。

示例代码:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Integer[] numberArray = numbers.stream().toArray(Integer[]::new);
使用示例

下面是一个使用示例,演示如何使用带参数的toArray()方法将Java流Stream的结果转换为数组:

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

public class StreamToArrayExample {

   public static void main(String[] args) {
      List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

      // 使用不带参数的toArray()方法将流的结果转换为Object数组
      Object[] numberArray1 = numbers.stream().toArray();
      System.out.println("Object array:");
      for (Object number : numberArray1) {
          System.out.println(number);
      }

      // 使用带参数的toArray()方法将流的结果转换为Integer数组
      Integer[] numberArray2 = numbers.stream().toArray(Integer[]::new);
      System.out.println("Integer array:");
      for (Integer number : numberArray2) {
          System.out.println(number);
      }
   }
}

输出结果:

Object array:
1
2
3
4
5
Integer array:
1
2
3
4
5
总结

toArray()方法是Java流Stream接口的一个方法,用于将流的结果转换为数组。它可以带有参数或者不带参数。带参数的toArray()方法将创建一个具有相同类型的数组,并将流中的元素复制到该数组中。如果数组足够大,则将流中的元素复制到该数组中,否则将创建一个新的数组。因此,我们可以像示例代码中一样使用toArray()方法将流的结果转换为所需类型的数组。