java lambda小纪
public class defaultMethod {
public static void main(String[] args) {
Formula formula= new Formula(){
@Override
public double calculate( int a){
return sqrt( a*100);
}
};
formula.calculate(100); // 100.0
formula.sqrt(16); // 4.0
}
}
interface Formula{
double calculate( int a);
default double sqrt(int a){
return Math. sqrt(a);
}
}
@FunctionalInterface
interface Converter<F, T> {
T convert(F from);
}
Converter<String,Integer> converter=(from) ->Integer.valueOf(from );
Integer converted= converter.convert( "123");
System. out.println( converted);

public static void main(String[] arg){
List<Person> lis= new ArrayList<Person>();
lis.add( new Person(){
});
lis.add( new Person(){
});
lis.add( new Person(){
});
lis.forEach( p-> p.setAge(19));
Stream result=lis.stream().filter(p->p.getAge()>18);
}
public static void main(String[] arg){
List<Person> lis= new ArrayList<Person>();
Person aa= new Person();
aa.setAge(20);
lis.add( aa);
// lis.forEach(p->p.setAge(19));
//Stream<Person> result=lis.stream().filter(p->p.getAge()>18);
Stream<String> result= lis.stream().map( p-> func(p.getAge()));
// Person bb=(Person)result.toArray()[0];
Iterator<String> strIter= result.iterator();
System. out.println( strIter.next());
System. out.println( result.count());
}
private static String func( int age) {
// TODO Auto-generated method stub
return "Age:"+ age;
}
高阶函数
Lambda表达式除了简化匿名方法的定义以外,由于其强大的表达能力,赋于了语言更多的函数式表达能力。
将参数或者返回类型为函数的函数称为高阶函数。
如斐波那契数列函数定义:
f(0) = 1;
f(1) = 1;
f(n) = f(n-1) + f(n-2);
用C#可以写成:
Func<int, int> f = null;
f = x => x <= 1 ? 1 : f(x - 1) + f(x - 2);
java lambda小纪的更多相关文章
- Java Lambda表达式初探
Java Lambda表达式初探 前言 本文受启发于Trisha Gee在JavaOne 2016的主题演讲Refactoring to Java 8. Java 8已经发行两年多,但很多人仍然在使用 ...
- Java lambda 表达式常用示例
实体类 package com.lkb.java_lambda.dto; import lombok.Data; /** * @program: java_lambda * @description: ...
- Java Lambda表达式入门
Java Lambda表达式入门 http://blog.csdn.net/renfufei/article/details/24600507 Java 8十个lambda表达式案例 http://w ...
- Java Lambda简明教程(一)
Lambda表达式背景 许多热门的编程语言如今都有一个叫做lambda或者闭包的语言特性,包括比较经典的函数式编程语言Lisp,Scheme,也有稍微年轻的语言比如JavaScript,Python, ...
- Java Lambda表达式入门[转]
原文链接: Start Using Java Lambda Expressions http://blog.csdn.net/renfufei/article/details/24600507 下载示 ...
- Java开发小技巧(三):Maven多工程依赖项目
前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...
- 微信机器人 返现机器人 pc版本 移动版本 java开发 小范省钱
微信机器人 返现机器人 pc版本 移动版本 java开发 小范省钱 微信搜索微信号 fanli-x 或 扫描下方二维码,可查看效果. 非web版微信,pc/移动版微信 支持新号24小时 不封号! 有任 ...
- java的小程序在html中的运行测试
java的小程序在html中的运行测试,打开vs2012,以网站模式打开,生成,调用iis临时服务器运行.
- 通过这些示例快速学习Java lambda语法
对于那些不熟悉函数式编程的人来说,基本的Java lambda语法起初可能有点令人生畏.但是,一旦将lambda表达式分解为它们的组成部分,语法很快就会变得有意义并变得非常自然. Java中lambd ...
随机推荐
- 重新想象 Windows 8 Store Apps (59) - 锁屏
[源码下载] 重新想象 Windows 8 Store Apps (59) - 锁屏 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 锁屏 登录锁屏,获取当前程序的锁 ...
- .NET向APNS苹果消息推送通知
一.Apns简介: Apns是苹果推送通知服务. 二.原理: APNs会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书以确定其为苹果设备):然后,将服务器的信息接收并且 ...
- hibernate3 Duplicate class/entity mapping(异常)
hibernate3 Duplicate class/entity mapping(异常) 代码: Configuration config = new Configuration().ad ...
- linux服务开机启动顺序
今天遇到了一个问题,我们写了一个服务脚本A,该服务需要优先于mysql启动.脚本是从其他地方拷来的模板,前面的默认配置没改,只是实现了自己的功能.写完,chkconfig A on,reboot,启动 ...
- Android开发中的问题及相应解决(持续更新)
最近博客写的少了,以后还得经常更新才行. ------------------------------------------------------------ 1.特定业务需求下try cath ...
- mysql max_allowed_packet过小导致的prepare失败
最近公司一台阿里云上模拟环境突然好好地就出错了额,总提示:"Unknown prepared statement handler (stmt) given to DEALLOCATE PRE ...
- HTTP路由
HTTP路由 HTTP路由(译者注:Play的路径映射机制)组件负责将HTTP请求交给对应的action(一个控制器Controller的公共静态方法)处理. 对于MVC框架来说,一个HTTP请求可以 ...
- 如何查询拥有执行某个Tcode权限所有人员
方法很简单,如下 一:Tcode:S_BCE_68001400二:输入你想查询的Tcode,例如:SE38 打开如下图所示,然后执行即可 三:AUTH(关于权限的控制),打开如下图所示.上图“ ...
- .NET 面试基本技术整理
这篇文章主要 整理出来的大部分公司需要的技术 以及一些学习链接,进行恶补一下,以免面试官考倒你 其中也整理了一些面试题需要的可以点击链接 需要掌握的技术 基础概念需要 面向对象 OOD/OOP OOD ...
- 利用在线工具自动化生成findviewById
我们在编码的时候经常会用到findviewById,不厌其烦,我之前介绍过一个很取巧的方法,挺好用的,这里再贴一下: public class KaleBaseActivity extends Act ...