行业资讯 2025年08月6日
0 收藏 0 点赞 414 浏览 1850 个字
摘要 :

文章目录 1.Stream的toArray()方法 2.Stream的toArray()示例 示例1:将Stream of String转换为String数组 示例2:将无限Stream转换为数组 示例3:Stream过滤和收集到数……




  • 1.Stream的toArray()方法
  • 2.Stream的toArray()示例
    • 示例1:将Stream of String转换为String数组
    • 示例2:将无限Stream转换为数组
    • 示例3:Stream过滤和收集到数组
  • 3.结论

学习使用Stream的toArray() API将Stream转换为数组。在本教程中,我们将通过多个示例来看如何将Stream的元素收集到数组中。

1.Stream的toArray()方法

toArray()方法返回包含给定Stream元素的数组。这是一种终止操作,返回一个数组。

Object[] toArray()
<T> T[]  toArray(IntFunction<T[]> generator)

toArray()方法是一种重载方法。第二种方法使用生成函数来分配返回的数组。

生成函数采用一个整数,即所需数组的大小,并产生一个所需大小的数组。

2.Stream的toArray()示例

示例1:将Stream of String转换为String数组

在给定的示例中,我们使用toArray() API将Stream转换为数组。

Stream<String> tokenStream = Arrays.asList(\"A\", \"B\", \"C\", \"D\").stream();  //stream
     
String[] tokenArray = tokenStream.toArray(String[]::new);   //array
 
System.out.println(Arrays.toString(tokenArray));  //[A, B, C, D]

示例2:将无限Stream转换为数组

要将无限Stream转换为数组,我们必须限制Stream以获取有限数量的元素。

1)转换为int数组:

IntStream infiniteNumberStream = IntStream.iterate(1, i -> i+1);
     
int[] intArray = infiniteNumberStream.limit(10)
      .toArray();
 
System.out.println(Arrays.toString(intArray));  //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2)转换为Integer包装类数组

IntStream infiniteNumberStream = IntStream.iterate(1, i -> i+1);
 
Integer[] integerArray = infiniteNumberStream.limit(10)
          .boxed()
          .toArray(Integer[]::new);
 
System.out.println(Arrays.toString(integerArray));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

示例3:Stream过滤和收集到数组

有时我们需要查找Stream中的特定项,然后仅将这些元素添加到数组中。在这里,我们可以使用Stream.filter()方法传递一个Predicate,它将返回仅匹配预设条件的元素。

public class Main 
{
  public static void main(String[] args) 
  {
    List<Employee> employeeList = new ArrayList<>(Arrays.asList(
              new Employee(1, \"A\", 100),
              new Employee(2, \"B\", 200),
              new Employee(3, \"C\", 300),
              new Employee(4, \"D\", 400),
              new Employee(5, \"E\", 500),
              new Employee(6, \"F\", 600)));
     
    Employee[] employeesArray = employeeList.stream()
            .filter(e -> e.getSalary() < 400)
            .toArray(Employee[]::new);
     
    System.out.println(Arrays.toString(employeesArray));
  }
}

程序输出:

[Employee [id=1, name=A, salary=100.0], 
Employee [id=2, name=B, salary=200.0], 
Employee [id=3, name=C, salary=300.0]]

3.结论

我们可以使用Stream的toArray()函数以多种方式将Stream元素收集到数组中。所有用例都可以使用此功能。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9586.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号