Java中将Stream转换为数组的程序
Stream 是一系列支持各种方法的对象,这些方法可以流水线化以产生所需的结果。
数组是一组由通用名称引用的类似类型的变量。数组可以包含原始数据类型以及类的对象,具体取决于数组的定义。在原始数据类型的情况下,实际值存储在连续的内存位置。对于类的对象,实际对象存储在堆段中。
以下是将 Stream 转换为 Array 的各种方法:
- 使用 toArray() : Stream 提供 toArray() 方法,该方法以 Object 数组的形式返回包含流元素的数组。
句法:
stream.toArray()
算法:
- 获取流
- 使用 Stream.toArray() 方法将 Stream 转换为数组。
- 得到的数组是 Object[] 类型的
- 返回数组对象[]
程序:
// Java Program to convert // Stream to array in Java 8 import java.util.*; import java.util.stream.*; import java.util.function.Function; class GFG { // Function to convert Stream to Array public static
Object[] convertStreamToArray(Stream stream) { return stream.toArray(); } public static void main(String args[]) { // Create a stream of integers Stream stream = Stream.of(1, 2, 3, 4, 5); // 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: [1, 2, 3, 4, 5]
- 使用 toArray(IntFunction generator) :此方法返回一个包含此流元素的数组,使用提供的生成器函数分配返回的数组,以及分区执行或调整大小可能需要的任何其他数组。
句法:
算法:
- 获取流
- 通过传递 Object[]::new 作为生成器函数来分配返回的数组,使用 Stream.toArray() 方法将 Stream 转换为数组。
- 得到的数组是 Object[] 类型的
- 返回数组对象[]
程序:
// Java Program to convert // Stream to array in Java 8 import java.util.*; import java.util.stream.*; import java.util.function.Function; class GFG { // Function to convert Stream to Array public static
Object[] convertStreamToArray(Stream stream) { return stream.toArray(Object[] ::new); } public static void main(String args[]) { // Create a stream of integers Stream stream = Stream.of(1, 2, 3, 4, 5); // 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: [1, 2, 3, 4, 5]
- 溪流
使用 mapToInt() 到 int[] : Java 8 Stream API 提供了 mapToInt() 方法,该方法返回一个 IntStream,该方法由将给定函数应用于该流的元素的结果组成。这是一个中间操作。然后使用 toArray() 将获得的 IntStream 转换为 int[]。算法:
- 获取整数流
- 使用 Stream.mapToInt() 方法将 Stream 转换为 IntStream。
- 使用 toArray() 将获得的 IntStream 转换为 int[]
- 得到的数组是 Integer 类型的
- 返回数组 int[]
程序:
// Java Program to convert // Stream to array in Java 8 import java.util.*; import java.util.stream.*; import java.util.function.Function; class GFG { // Function to convert Stream to Array public static int[] convertStreamToArray(Stream
stream) { return stream.mapToInt(Integer::intValue).toArray(); } public static void main(String args[]) { // Create a stream of integers Stream stream = Stream.of(1, 2, 3, 4, 5); // Convert Stream to array int[] array = convertStreamToArray(stream); // Print the array of stream System.out.println("Array of Integer from Stream: " + Arrays.toString(array)); } } 输出:Array of Integer from Stream: [1, 2, 3, 4, 5]