找回过去之java8旧特性的Lambda表达式
2017-02-21 14:54
363 查看
上午看了下接口默认方法的写法,现在接着看java8新特性的Lamdba表达式吧。
看lambda表达式,发现可以省了不少的事情,以前需要多行代码才能搞定的简单功能,现在就一行收工,很方便。
以下是自己写的demo:
public class Lambda {
private static List<String> list = new ArrayList<String>();
public Lambda() {
list.add("cat");
list.add("dog");
list.add("banana");
list.add("apple");
}
private List<String> oldSort() {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});
return list;
}
private List<String> lambdaSort() {
// 最基础的,有大括号
Collections.sort(list, (String a, String b) -> {
return a.compareTo(b);
});
// 可短一些,去掉大括号和return
Collections.sort(list, (String a, String b) -> a.compareTo(b));
// 最简形式, 连形参的类型都去掉了
Collections.sort(list, (a, b) -> a.compareTo(b));
return list;
}
public static void main(String[] args) {
Lambda lambda = new Lambda();
lambda.oldSort().forEach(e -> System.out.println("old: " + e));
lambda.lambdaSort().forEach(e -> {
System.out.println("lambda: " + e);
});
}
}
看着这份和新手一般的代码,我在思考,lambda表达式,在实际项目中该怎么去使用,除了for,sort,还有什么地方可以去应用。以后碰到了再逐渐更新,或者请各位大佬们指点指点。
看lambda表达式,发现可以省了不少的事情,以前需要多行代码才能搞定的简单功能,现在就一行收工,很方便。
以下是自己写的demo:
public class Lambda {
private static List<String> list = new ArrayList<String>();
public Lambda() {
list.add("cat");
list.add("dog");
list.add("banana");
list.add("apple");
}
private List<String> oldSort() {
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});
return list;
}
private List<String> lambdaSort() {
// 最基础的,有大括号
Collections.sort(list, (String a, String b) -> {
return a.compareTo(b);
});
// 可短一些,去掉大括号和return
Collections.sort(list, (String a, String b) -> a.compareTo(b));
// 最简形式, 连形参的类型都去掉了
Collections.sort(list, (a, b) -> a.compareTo(b));
return list;
}
public static void main(String[] args) {
Lambda lambda = new Lambda();
lambda.oldSort().forEach(e -> System.out.println("old: " + e));
lambda.lambdaSort().forEach(e -> {
System.out.println("lambda: " + e);
});
}
}
看着这份和新手一般的代码,我在思考,lambda表达式,在实际项目中该怎么去使用,除了for,sort,还有什么地方可以去应用。以后碰到了再逐渐更新,或者请各位大佬们指点指点。
相关文章推荐
- Java 8新特性:lambda表达式
- Java 8新特性-3 Lambda 表达式
- JAVA8新特性(Lambda 表达式)
- Java 8新特性:新语法方法引用和Lambda表达式及全新的Stream API
- Java8 新特性之一---------Lambda表达式和函数式接口
- Java 8新特性:lambda表达式(四)转载总结
- Android Studio使用gradle-retrolambda支持Java8 新特性 Lambde表达式
- Java8特性详解 lambda表达式 Stream
- java8新特性之lambda表达式(一)
- java8新特性(拉姆达表达式lambda)
- java8新增特性(一)---Lambda表达式
- Java8 新特性----函数式接口,以及和Lambda表达式的关系
- Java 8 新特性:Lambda 表达式
- JAVA 新特性:lambda表达式
- Java8新特性——lambda表达式
- Java8新特性 - Lambda表达式 - 基本知识
- JAVA 1.8 新特性学习(2) lambda表达式
- Java 8 新特性:Lambda 表达式之方法引用(Lambda 表达式补充版)
- Java8新特性之Lambda表达式
- Java8 新特性之 Lambda 表达式