Stream 是支持各种方法的对象序列,这些方法可以通过管道传输以产生所需的结果。
array 是一组由通用名称引用的like-typed 变量。数组可以包含基元数据类型以及类的对象,具体取决于数组的定义。对于基元数据类型,实际值存储在连续的内存位置中。对于类的对象,实际对象存储在堆段中。
下面是将 Stream 转换为 Array 的各种方法:
- 使用toArray():Stream 提供toArray() 方法,该方法以对象数组的形式返回包含流元素的数组。
用法:
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 <T> Object[] convertStreamToArray(Stream<T> stream) { return stream.toArray(); } public static void main(String args[]) { // Create a stream of integers Stream<Integer> 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 生成器):此方法返回一个包含该流元素的数组,使用提供的生成器函数分配返回的数组,以及分区执行或调整大小可能需要的任何其他数组。
用法:
<A> A[] toArray(IntFunction<A[]> generator)
算法:
- 获取流
- 使用 Stream.toArray() 方法将 Stream 转换为数组,传递 Object[]::new 作为生成器函数来分配返回的数组。
- 获取的数组类型为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 <T> Object[] convertStreamToArray(Stream<T> stream) { return stream.toArray(Object[] ::new); } public static void main(String args[]) { // Create a stream of integers Stream<Integer> 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<Integer> stream) { return stream.mapToInt(Integer::intValue).toArray(); } public static void main(String args[]) { // Create a stream of integers Stream<Integer> 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]
相关用法
- Java Stream转Map用法及代码示例
- Java Stream转Set用法及代码示例
- Java StreamTokenizer commentChar()用法及代码示例
- Java StreamTokenizer eolIsSignificant()用法及代码示例
- Java StreamTokenizer lineno()用法及代码示例
- Java StreamTokenizer lowerCaseNode()用法及代码示例
- Java StreamTokenizer nextToken()用法及代码示例
- Java StreamTokenizer ordinaryChar()用法及代码示例
- Java StreamTokenizer ordinaryChars()用法及代码示例
- Java StreamTokenizer parseNumbers()用法及代码示例
- Java StreamTokenizer pushBack()用法及代码示例
- Java StreamTokenizer quoteChar()用法及代码示例
- Java StreamTokenizer resetSyntax()用法及代码示例
- Java StreamTokenizer slashSlashComments()用法及代码示例
- Java StreamTokenizer slashStarComments()用法及代码示例
- Java StreamTokenizer toString()用法及代码示例
- Java StreamTokenizer whitespaceChars()用法及代码示例
- Java StreamTokenizer wordChars()用法及代码示例
- Java Stream allMatch()用法及代码示例
- Java Stream anyMatch()用法及代码示例
- Java Stream builder()用法及代码示例
- Java Stream.concat()用法及代码示例
- Java Stream count()用法及代码示例
- Java Stream.distinct()用法及代码示例
- Java Stream dropWhile()用法及代码示例
注:本文由纯净天空筛选整理自RishabhPrabhu大神的英文原创作品 Program to Convert Stream to an Array in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。