在 Java 中将 Stream 转换为数组

Waleed 2023年10月12日
  1. 在 Java 中使用 convertStreamToArray() 方法将 Stream 转换为数组
  2. 在 Java 中使用 toArray() 方法将 Stream 转换为数组
  3. 使用 mapToInt() 方法
在 Java 中将 Stream 转换为数组

流是支持许多方法的对象的集合,可以定制以产生我们想要的结果。

另一方面,数组是用相同名称声明的相同数据类型变量的集合。你可以将数组定义为原始数据类型或类的对象。

如果将数组定义为原始数据类型,则实际值将存储在单独的内存位置。相反,如果将数组定义为类的对象,则实际的 Object 将存储在堆段中。

在 Java 中使用 convertStreamToArray() 方法将 Stream 转换为数组

该流带有 convertStreamtoArray() 方法,该方法返回一个数组以及对象数组中的流元素。

算法

  1. 首先创建一个整数流。
  2. 使用 Stream.toArray() 方法将整数流转换为数组。
  3. 返回的数组是 Object[] 类型。
  4. 最后返回那个数组对象。

程序

import java.util.*;
import java.util.stream.*;

public class sampleArticle {
  // Function to convert Stream to Array
  public static <D> Object[] convertStreamToArray(Stream<D> stream) {
    return stream.toArray();
  }

  public static void main(String args[]) {
    // Create a stream of integers
    Stream<Integer> stream = Stream.of(2, 4, 6, 8, 10);

    // Convert Stream to array
    Object[] array = convertStreamToArray(stream);

    // Print the array of stream
    System.out.println("Array from Stream: " + Arrays.toString(array));
  }
}

输出:

Array from Stream: [2,4,6,8,10]

在 Java 中使用 toArray() 方法将 Stream 转换为数组

另一种将 Java 流转换为数组的预定义 java 方法是 toArray()。此方法返回一个包含流元素的数组。它使用提供的生成器函数为返回的数组和分区执行函数所需的任何其他数组分配空间。

算法

  1. 创建流。
  2. 使用 toArray() 方法将流转换为数组。你需要将 Object []: new 作为生成器函数传递,以便为返回的数组分配空间以完成这项工作。
  3. 通过这个过程获得的数组是 Object[] 类型的。
  4. 最后返回对象 Array[]

程序

import java.util.*;
import java.util.stream.*;
public class sampleArticle {
  // defining function that converts stream into an array
  public static <D> Object[] convertStreamToArray(Stream<D> stream) {
    return stream.toArray(Object[] ::new);
  }

  public static void main(String args[]) {
    // Create a stream of integers
    Stream<Integer> stream1 = Stream.of(2, 4, 6, 8, 10);

    // Convert Stream to array
    Object[] array = convertStreamToArray(stream1);

    // Print the array of stream
    System.out.println("Converted array from Stream: " + Arrays.toString(array));
  }
}

输出:

Converted array from Stream: [2,4,6,8,10]

使用 mapToInt() 方法

Java 8 Stream 带有 mapToInt() 方法,该方法返回一个包含给定流元素的整数流。这是一个中间过程。然后使用 toArray() 方法将由此获得的 intStream 转换为整数数组 (int [])。

算法

  1. 创建一个整数流
  2. 使用 Stream.mapToInt() 方法将整数流转换为整数流 (intStream)。
  3. 使用 toArray() 方法将结果流转换为整数数组 (int [])。
  4. 通过该方法得到的数组是整数类型。
  5. 最后返回整数数组(int [])。

程序

import java.util.*;
import java.util.stream.*;

public class sampleArticle {
  // defining function that converts stream into an array
  public static int[] convertStreamToArray(Stream<Integer> stream) {
    return stream.mapToInt(Integer::intValue).toArray();
  }

  public static void main(String args[]) {
    // Create a stream of integers
    Stream<Integer> stream1 = Stream.of(2, 4, 6, 8, 10);

    // Convert Stream to array
    int[] array = convertStreamToArray(stream1);

    // Print the array of stream
    System.out.println("Converted array from Stream: " + Arrays.toString(array));
  }
}

输出:

Converted array from Stream: [2,4,6,8,10]

相关文章 - Java Stream

相关文章 - Java Array