首先得承认这篇文章有点标题党的味道,哈哈,到java6为止,java是不支持函数式编程的。前几天在使用apache commons collections的时候偶然发现CollectionUtils.exist方法,该方法用于判断集合中是否存在满足某个条件的元素,具体使用如下:
@Test
public void test_functional_programming(){
String[] langs = {"java", "python", "c"};
assertTrue(
CollectionUtils.exists(Arrays.asList(langs), new Predicate() {
public boolean evaluate(Object object) {
return "java".equals((String)object);
}
})
);
}
exists的第一个参数为接口Collection,第二个参数为接口Predicate,用来表示判断是否存在的条件,上例在调用的时候新建了一个匿名类。也正是匿名类的存在让整个代码显得繁琐不直观,说真的还不如自己动手写一个exists方法:
private boolean existsJava(Collection<String> langs){
for (String lang : langs){
if ("java".equals(lang)) return true;
}
return false;
}
今年oracle在openjdk项目发布了
java lambda的草案,如果将来commons collections也推出一个lambda版本,那么对exists的调用会变成:
CollectionUtils.exists(Arrays.asList(langs), #(String lang)("java".equals(lang)))
尽管还不算完美,但至少比目前的exists方法调用简洁多了。CollectionUtils里面还存在collect, find, filter, select等函数式编程常用的方法,有兴趣的朋友可以看看。
分享到:
相关推荐
《Java函数式编程》_高清华
Java 8函数式编程
NULL 博文链接:https://cywhoyi.iteye.com/blog/1943291
Java函数式编程是指利用函数式编程的思想和特性来开发Java应用程序。函数式编程强调将计算过程视为数学函数的求值,侧重于函数的组合、映射、过滤等操作,同时避免了可变状态和可变数据。 在Java中,函数式编程主要...
Java 函数式编程教程 资源为视频教程资源 希望对你的 Java 学习有所帮助。
Java 函数式编程 Lambda表达式
黑马程序员Java函数式编程全套视频教程,Lambda表达式、Stream流、函数式编程一套全通关1
Java函数式编程.rar
深入理解Java函数式编程和Streams API.zip
Java设计模式之命令模式/Java函数式编程 笔记
java8函数式编程(csdn)————程序
优秀的Java8技术教程
java lambda函数式编程完成实例代码,看完代码,基本上就会用lambda 了
以前写过一篇java8的流操作,人们都说流操作是函数式编程,但函数式编程是什么呢? 什么是函数式编程 什么是函数式编程?它是一种编程范式,即一切都是数学函数。函数式编程语言里也可以有对象,但通常这些对象都是...
目前主要涉及提升java函数式编程的体验。 pom引入 <groupId>tk.qcsoft.angelos <artifactId>exia <version>1.0.3 Exia模块 提供类似kotlin的函数式编程语法体验。简单易用。提供多种对目标类的结构化函数操作...
java代码-java函数式编程
主要介绍了JAVA 函数式编程的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
该资源为本人翻遍大部分帖子、博客、资源等一系列资料自我整合了一套技术分享的Demo,以Java为载体,使用浅显易懂的代码,阐述Lambda表达式 与java的结合使用,以及Stream流的基本方法与collect()、reduce()等...
主要介绍了Java函数式编程(六):Optional,本文是系列文章的第6篇,其它文章请参阅本文底部的相关文章,需要的朋友可以参考下
函数式编程另类指南.chm函数式编程另类指南.chm函数式编程另类指南.chm函数式编程另类指南.chm函数式编程另类指南.chm