在 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]

在 JavaScript 中将 Set 转换为数组

在本文中,我们将研究在 JavaScript 中将 Set 转换为数组。

在 JavaScript 中使用 Array.from() 将集合转换为数组

  • Array.from() 允许你从以下来源构建数组:
  • 类数组对象(具有索引项和长度属性的对象);或者
  • 可以迭代的项目(例如 Map 和 Set)。

从像 Set 这样的可迭代对象中,Array.from() 方法可以构造浅拷贝的 Array 实例。使用 ES6,它被添加到 Array 对象中。这就是代码的样子:

var aa = new Set([1, 3, 5, 7]);
let ar = Array.from(aa);

console.log(ar);

输出:

[1, 3, 5, 7]

在 JavaScript 中使用 Spread 运算符将集合转换为数组

扩展 syntax (...) 扩展迭代,例如数组表达式或字符串,其中需要零个或多个参数(用于函数调用)或元素(用于数组文字),或者零个或多个键值对扩展为预期的位置(对于对象文字)。

你还可以使用扩展运算符将 Set 更改为数组。展开语法允许增加集合,其中需要一个数组文字。反过来,它引入了 JavaScript 的 ES6 规范。

下面测试它的使用:

var aa = new Set([1, 3, 5, 7]);
let ar = [...aa];

console.log(ar);

输出:

[1, 3, 5, 7]

使用 JavaScript 中的 Set.prototype.forEach() 函数将 Set 转换为数组

另一种解决方案是将 Set 的每个元素添加到数组中。这可以使用 forEach() 方法轻松完成,如下所示:

var aa = new Set([1, 3, 5, 7]);
let ar = [];
aa.forEach(k => ar.push(k));

console.log(ar);

forEach() 方法为 Set 对象中的每个值执行一次提供的回调。

输出:

[1, 3, 5, 7]