Ant*_*ong 6 python java functional-programming
以下是itertools.groupby()Python中的示例用例:
from itertools import groupby
Positions = [ ('AU', '1M', 1000),
('NZ', '1M', 1000),
('AU', '2M', 4000),
('AU', 'O/N', 4500),
('US', '1M', 2500),
]
FLD_COUNTRY = 0
FLD_CONSIDERATION = 2
Pos = sorted(Positions, key=lambda x: x[FLD_COUNTRY])
for country, pos in groupby(Pos, lambda x: x[FLD_COUNTRY]):
print country, sum(p[FLD_CONSIDERATION] for p in pos)
# -> AU 9500
# -> NZ 1000
# -> US 2500
Run Code Online (Sandbox Code Playgroud)
Java中是否有任何语言构造或库支持可以实现或者可以实现itertools.groupby()上述功能?
最接近的可能是Apache Functor.查看Java中的Functors,Transformers,Predicates和Closures示例,您将在其中找到示例.
顺便说一句 - 不要期望看到像Python这样的东西,这些东西是用2-3行代码实现的.Java并未被设计为具有良好功能特性的语言.它根本不包含许多像脚本语言那样的语法糖.也许在Java 8中会看到更多这些东西汇集在一起.这就是为什么Scala出现的原因, 看到我之前提出的这个问题,我得到了很好的相关答案.正如您在我的问题中所看到的,实现递归函数在Python中比在Java中更好.Java有很多很好的功能,但绝对功能编程并不是其中之一.