Java8 lambda表达式
来源:互联网 发布:做网络销售的技巧 编辑:程序博客网 时间:2024/06/05 17:38
java8新特性在android上的应用主要有匿名监听类,以及集合操作,大致例子如下:
1、监听:
textView.setOnClickListener((view)->{Toast.makeText(MainActivity.this,"哈哈",Toast.LENGTH_LONG).show();});textView.setOnLongClickListener(v-> { String name = ""; name = "fjsdkjfasd"; Toast.makeText(MainActivity.this,name,Toast.LENGTH_LONG).show(); return true;} );
2、集合list进行过滤,并循环操作:关键字filter和predicate
List<String> strings = Arrays.asList("sdfhkas", "sfaksf");注意filter中的条件操作是可以进行 与或的,如上。strings.forEach(e->Log.d("jjk",e));Predicate<String> predicate1 = e->e.startsWith("s");Predicate<String> predicate2 = e->e.length()==3;strings.stream().filter(predicate1.and(predicate2)).forEach(textView::setText);
3、集合求和:关键字:reduce()
List<Integer> integerList = Arrays.asList(6, 3, 7, 22);Integer integer = integerList.stream().reduce((total, e) -> total + e).get();
4、对集合中的元素进行操作,并转化为新的集合输出:关键字map和collect
List<Integer> collect = integerList.stream().filter(e -> e > 7).collect(Collectors.toList());List<Integer> collect1 = collect.stream().map(e -> e + 3).collect(Collectors.toList());5、对集合进行去重操作:关键字:distinct.因为distinct操作比较耗性能,所以先unsortedintegerList.stream().unordered().distinct().collect(Collectors.toList());
6、对于数字可以一次性操作,得到统计数据,如max min average sum,关键字summaryStatics.IntSummaryStatistics intSummaryStatistics = integerList.stream().mapToInt(x -> x).summaryStatistics();intSummaryStatistics.getAverage();intSummaryStatistics.getSum();7、lambda表达式包含:生命了funtion接口的方法,或者只有一个抽象方法的接口;lambda表达式是一个闭包,对于声明在闭包外的变量,必须是final型,或者只访问,不能进行修改,否则编译器会直接报错。表达式基本写法: (按顺序写参数,没有的话就不能写)->{函数语句}new Thread(()->doWork()).start();View.OnClickListener clickListener = v->textView.setText(v.getId()+"");new ListView(this).setOnItemClickListener((parent, view, position, id) -> { if (position==9) { } });
阅读全文
0 0
- Java8 Lambda表达式教程
- Java8 Lambda表达式教程
- Java8: Lambda表达式语法
- java8 Lambda表达式
- Java8 Lambda表达式教程
- Java8 Lambda表达式
- java8 Lambda表达式
- Java8 Lambda表达式教程
- Java8 Lambda表达式教程
- Java8 Lambda表达式教程
- java8 lambda表达式-语法
- java8 lambda表达式-其他
- java8 lambda表达式
- Java8 Lambda表达式入门
- Spark/Java8 lambda表达式
- Java8 Lambda表达式教程
- Java8 lambda表达式
- Java8 Lambda表达式教程
- 扩充你的工具箱
- [DP] POJ
- 今天开通了准备运营的个人公众号
- 记一次解决线上压力的过程
- 红黑树
- Java8 lambda表达式
- 查询
- 学生总结(五)--典型错误集锦
- 第一周、课时6:数据类型——number
- ZOJ 1648 Circuit Board(线段相交判定 刘汝佳模板)
- C++文件操作——将文件从一个文件夹移动到另一个文件夹
- 机器学习-梯度下降III(为何梯度下降能最小化代价函数)
- 51Nod-1066 Bash游戏(博弈问题)
- 1042 数字0-9的数量(数位DP)