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 phone (42) - 8.0 相机和照片: 通过 PhotoCaptureDevice 捕获照片
[源码下载] 与众不同 windows phone (42) - 8.0 相机和照片: 通过 PhotoCaptureDevice 捕获照片 作者:webabcd 介绍与众不同 windows pho ...
- WebGL/X3DOM 跑在 iOS
iOS是最早支持WebGL的移动操作系统之一,我们一直在努力让X3DOM运行在那些设备上.然而,标准的Safari浏览器默认是没有开启的.这种情况从iOS8发生改变,iOS8现在完全支持WebGL - ...
- JPA学习(3)JPA API
在我们的jpa的helloworld中,我们看到了简单的一个jpa保存操作,下面就来好好学习一下,JPA最主要的几个类 1.基本的几个类: ①:Persistence 类是用于获取 EntityMan ...
- 回文串--- Girls' research
HDU 3294 Problem Description One day, sailormoon girls are so delighted that they intend to resear ...
- ahjesus C# 4.0 Parallel 并行运算
Parallel.For - for 循环的并行运算 Parallel.ForEach - foreach 循环的并行运算 Parallel.Invoke - 并行调用多个任务 Task - 任务,基 ...
- AngularJS 最常用的功能
第一 迭代输出之ng-repeat标签ng-repeat让table ul ol等标签和js里的数组完美结合 1 2 3 4 5 <ul> <li ng-repeat="p ...
- WCF Service部署在IIS上
环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方.在这个p ...
- andriod arcgis加载影像TIF
private static final String TAG = "MainActivity"; private MapView mapView = null; @Overrid ...
- IOS 网络浅析-(三 NSURLConnection代理)
对于现在的iOS开发,用法简单,最古老最经典最直接的NSURLConnection的作用不是很大,但是作为一名ios开发者,我们应该拥有一颗热爱学习的心,下面通过代码的实现简单介绍一下NSURLCon ...
- unity下载文件二(http同步下载)
说到下载,其实C#里的网络模块,真的是被各种封装,最终就看你对这个语言中库的熟悉程度了. 抛开C#中IO效率的弊病不说,真的很容易,记住,太过于注重效率或者追求极致,你将会死的很惨,有时候折中才是最好 ...