在Haskell映射有一個叫做map
函數,該函數A
類型的列表和一個函數f
,A
類型的映射值B
類型的值。它返回一個類型爲B
的列表,使得結果列表的每個元素都從f
的調用開始,到輸入列表中的一個值。等價於(從Haskell的)在Java 7中
例如,給定
- 列表
m = ['a', 'b', 'c']
, - 和功能
f = {'a' -> 1, 'b' -> 2, 'c' -> 3}
, - 然後
map(m, f) = [1, 2, 3]
。
是否有一個庫,可用於Java 7,提供類似map
函數?我已經查看了apache CollectionUtils,發現了forAllDo和transform之類的東西,但它們不允許重新調整完全不同類型的集合。谷歌搜索其他圖書館失敗的原因相同。
要清楚:我知道如何自己解決問題,但我強烈地感覺到必須已經有一個更好的庫來執行這個任務。
獎金問題:是否有一些等同於Java 7中可用的Haskell函子(即從集合到迭代器)?進一步說明:是否有地圖功能需要Iterable<A>
而不是Collection<A>
,並返回Iterable<B>
而不是Collection<B>
(由擬合函數f
提供)?
這聽起來就像你真正想要Java 8一樣。Java 7不再受到公衆的支持。 –
我有我的項目中使用Java 7的限制。 – user3389669
實際上Java 7中沒有任何與Haskell等價的函數。 Java中有一個java.util.Map,用於處理鍵和值。用同樣的方法,你可以使用一個對象的值,等等...... –