在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,用于处理键和值。用同样的方法,你可以使用一个对象的值,等等...... –