标题有点怪,我知道,让我解释一下
我是一个最熟悉c#和Javascript的开发人员。我完全沉浸在那些半功能的世界里,以至于我的大部分代码都是关于映射/减少/过滤集合的。在c#中,这意味着我几乎到处使用LINQ,在Javascript中,它是Underscore.js和jQuery。
我目前被分配到一个正在进行的Java项目,感觉相当窒息。我只是不认为"创建一个数组,从一个洗牌到另一个"。我可以(并且确实)使用匿名类型实现接口创建我自己版本的主map/reduce函数,但为什么要重新发明轮子呢?我目前正在进行的项目已经有commons-collections-3.1.jar,通过查看包含的类,它似乎可以做我想要的一切,甚至更多。
无论如何,我都不知道如何实际使用它。浏览里面的几十个类并不是很有帮助,我唯一能搜索到的是api文档,它同样很有帮助。
如何使用它来映射/选择,过滤/Where,减少/聚合?有没有什么地方可以提供关于这个库的实际教程?
(注释作为格式化的答案。)
没有太多,除了有限的用户指南。
也就是说,我不确定您具体在哪里遇到了问题——过滤和选择主要是封装在functors包中,并由CollectionUtils类使用。
当您不寻找替代品时,您可能会发现像Guava或Lambda4J这样的东西更类似于您习惯的东西(在Java的约束内),并且它们不那么啰嗦。
试试这些链接:
http://commons.apache.org/collections/userguide.html(基础教程)http://larvalabs.com/collections/tutorial.html(高级教程与通用)
@george-mauer,您可能必须依赖像本文这样的文章或像Jakarta Commons Cookbook这样的书。我还发现通过创建自己的示例来学习非常有用。