为什么“Iterable”上没有“map”方法

  • 本文关键字:map 方法 Iterable java
  • 更新时间 :
  • 英文 :


Iterable有一个forEach默认方法

https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html

为什么它没有map方法?

例如,Map具有map方法。

下面的Stream java文档摘录试图解释:

集合和流虽然有一些表面上的相似之处,但有不同的目标。藏品主要涉及对其元素的有效管理和访问。相比之下,流不提供直接访问或操作其元素的手段,而是关心声明性地描述其源以及将在该源上聚合执行的计算操作。

本质上,Iterable处理访问和遍历,而Streams更多地涉及转换&计算。

经过一些讨论,原因似乎是如果Iterable上有一个map方法,那么它必须返回一个Iterable。这对于Collections来说是很奇怪的。

例如,List.map必须返回一个Iterable

Map.map的情况并非如此。

最新更新