java8学习 -- lambda表达式
来源:互联网 发布:图片剪切软件下载 编辑:程序博客网 时间:2024/05/22 07:44
参考文章 http://f.dataguru.cn/thread-656507-1-2.html
字符串排序:
public class Test2 { /** * 对字符串排序 */ public void strSortForList(List<String> list){ // 老版本java写法 Collections.sort(list, new Comparator<String>() { @Override public int compare(String a, String b) { return b.compareTo(a); } }); // lambda表达式写法 Collections.sort(list, (String a,String b) -> { return b.compareTo(a); }); // 简化版 Collections.sort(list,(a,b) -> b.compareTo(a)); } public static void main(String[] args) { List<String> names = Arrays.asList("peter", "anna", "mike", "xenia"); new Test2().strSortForList(names); System.out.println(names); // 输出结果:[xenia, peter, mike, anna] }}
每一个lambda表达式都对应一个类型,通常是接口类型。而"函数式接口"是指仅仅只包含一个抽象方法的接口,每一个该类型的lambda表达式都会被匹配到这个抽象方法。
/** * 每一个lambda表达式都对应一个类型,通常是接口类型。 * 而"函数式接口"是指仅仅只包含一个抽象方法的接口, * 每一个该类型的lambda表达式都会被匹配到这个抽象方法。 */@FunctionalInterfaceinterface Converter<F, T> { // 每个该类型的lambda表达式都会被匹配到这个方法 T convert(F from); // 函数式接口(@FunctionalInterface)只包含一个抽象方法(不包括Object的方法) public abstract boolean equals(Object obj);}public class Test3 { public static void main(String[] args) { Converter<String, Integer> converter = (from) -> Integer.valueOf(from); // 上一行代码还可以通过静态方法引用来表示: Converter<String, Integer> converter = Integer::valueOf; Integer converted = converter.convert("123"); System.out.println(converted); // 123 }}
@FunctionalInterfaceinterface Converter<F, T> { T convert(F from); public abstract boolean equals(Object obj); // 另外java8接口可以有默认方法,但要加上default public default String trim(String str){return str.trim();} public default String trim(){return null;}}public class Test3 { public static void main(String[] args) { Converter<String, Integer> converter = Integer::valueOf; System.out.println(converter.trim(" abc ")); // abc }}
0 0
- java8 Lambda 表达式 学习
- java8学习 -- lambda表达式
- java8学习-Lambda表达式
- Java8 Lambda表达式学习
- java8 Lambda表达式学习
- 学习Java8--Lambda表达式
- java8基础学习-lambda表达式
- Java8学习(3)- Lambda 表达式
- Java8学习(3)- Lambda 表达式
- 学习java8的lambda表达式
- Java8中Lambda表达式学习
- JAVA8学习之Lambda表达式
- java8 Lambda表达式的学习与测试
- Java8学习笔记之Lambda表达式
- Java8 实战学习 — Lambda 表达式
- Java8学习笔记 — 【Lambda表达式】
- 深入学习java8一(Lambda表达式简介)
- Java8 Lambda表达式教程
- 9、单表数据查询----第2篇
- HashMap在多线程环境下偶然造成InfiniteLoop导致程序宕机
- 【unix网络编程第三版】阅读笔记(四):TCP客户/服务器实例
- Android 隐藏状态栏
- 整数反转算法(php实现)
- java8学习 -- lambda表达式
- c++向量
- nlp_关键词提取总结
- 练习35——分支和函数
- java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.37\bin\tcnative-1.dll: Can't load AMD 64
- 【Python学习笔记】调试
- 易语言 利用QQ感知登录提取QQ号码
- GEOGRAPHY
- Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time