[英]Why is there no `map` method on `Iterable`
Iterable
具有forEach
默認方法
https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html
為什么沒有map
方法?
例如, Map
有一個map
方法。
以下來自Stream Java文檔的摘錄嘗試解釋:
集合和流雖然具有一些表面上的相似性,但它們具有不同的目標。 館藏主要涉及對其元素的有效管理和訪問。 相比之下,流不提供直接訪問或操縱其元素的方法,而與聲明性地描述其源以及將在該源上聚合執行的計算操作有關。
本質上,可迭代處理訪問和遍歷,而流則更多地參與轉換和計算。
經過一番討論,原因似乎是如果Iterable
上有一個map
方法,則必須返回Iterable
。 對於集合來說,這是奇怪的。
例如, List.map
必須返回一個Iterable
對於Map.map
則不是這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.