您的位置:首页 > 编程语言 > Java开发

找回过去之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,还有什么地方可以去应用。以后碰到了再逐渐更新,或者请各位大佬们指点指点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: