博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lambda表达式使用场景及实例
阅读量:2443 次
发布时间:2019-05-10

本文共 2971 字,大约阅读时间需要 9 分钟。

Lambda表达式的使用场景

  • 在一个单独的线程中运行代码
  • 多次运行的代码
  • 在算法的适当位置运行代码(排序中的比较操作)
  • 发生某种情况时执行代码(点击了一个按钮,数据到达等)
  • 只在必要时才运行的代码

示例

集合排序:已知在一个ArrayList中有若干个Person对象,将这些Person对象按照年龄降序排序。

public class Exercise1 {
public static void main(String[] args) {
ArrayList
list = new ArrayList<>(); list.add(new Person("aaa", 10)); list.add(new Person("bbb", 11)); list.add(new Person("ccc", 12)); list.add(new Person("ddd", 13)); list.add(new Person("eee", 14)); list.add(new Person("fff", 15)); list.sort((o1, o2) -> o2.age - o1.age); System.out.println(list); }}

TreeSet排序

public class Exercise2 {
public static void main(String[] args) {
/* TreeSet */ TreeSet
set = new TreeSet<>((o1, o2) -> {
if(o1.age >= o2.age){
return -1; }else{
return 1; } }); set.add(new Person("aaa", 10)); set.add(new Person("bbb", 11)); set.add(new Person("ccc", 12)); set.add(new Person("ddd", 13)); set.add(new Person("eee", 14)); set.add(new Person("fff", 15)); System.out.println(set); }}

集合遍历(带条件)

public class Exercise3 {
public static void main(String[] args) {
/* 集合遍历 */ ArrayList
list = new ArrayList<>(); Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0); //将集合中的每一个元素都带入到方法accept中。 list.forEach(System.out::println); //输出集合中所有的偶数 list.forEach(ele -> {
if(ele % 2 == 0) System.out.println(ele); }); }}

条件删除

public class Exercise4 {
public static void main(String[] args) {
//删除集合中满足条件的元素 ArrayList
list = new ArrayList<>(); list.add(new Person("aaa", 10)); list.add(new Person("bbb", 11)); list.add(new Person("ccc", 12)); list.add(new Person("ddd", 13)); list.add(new Person("eee", 14)); list.add(new Person("fff", 15)); //删除集合中年龄大于12岁的元素/* ListIterator
it = list.listIterator(); while(it.hasNext()){ Person ele = it.next(); if(ele.age > 12){ it.remove(); } }*/ //Lambda实现,将集合中的每一个元素都带入到test方法中,如果返回值是true,则删除这个元素 list.removeIf(ele -> ele.age > 12); System.out.println(list); }}

开启线程

public class Exercise5 {
public static void main(String[] args) {
//需求:开辟一条线程,做一个数字的输出 Thread t = new Thread(new Runnable() {
@Override public void run() {
for(int i = 0; i < 100; i++){
System.out.println(i); } } }); t.start(); Thread t2 = new Thread(() -> {
for(int i = 0; i < 100; i++){
System.out.println(i); } }); t2.start(); }}

转载地址:http://zupqb.baihongyu.com/

你可能感兴趣的文章
使用Bootstrap和AngularJS构建类似Chrome的标签页
查看>>
angular 克隆_使用Angular和Stamplay构建Etsy克隆(第3部分)
查看>>
萨斯病毒感染情况_审美萨斯1:建筑与风格组织
查看>>
angular删除节点_节点和Angular To-Do应用程序:控制器和服务
查看>>
angular 克隆_使用Angular和Stamplay构建Etsy克隆(第2部分)
查看>>
视屏剪辑背景音乐_文本背景和带有背景剪辑的渐变
查看>>
使用Mongoose轻松开发Node.js和MongoDB应用
查看>>
做无用之事读无用之书_如何从现有的基础上创建一个无用的基础框
查看>>
ionic4创建应用命令_使用AngularJS和Ionic创建您的第一个移动应用
查看>>
emmet :_使用Emmet快速编写HTML Crazy Fast:交互式指南
查看>>
flux react_使用React.js和Flux创建一个简单的购物车
查看>>
idea 创建todo_创建具有节点和角度的单页Todo应用
查看>>
angularjs路由_具有AngularJS路由和模板的单页应用
查看>>
轻松的节点身份验证:将所有帐户链接在一起
查看>>
js复选框和单选按钮_以角形式处理复选框和单选按钮
查看>>
node.js react_使用Node和React.js构建实时Twitter流
查看>>
ppt 代码语法突出显示_为您的网站代码获取漂亮的语法突出显示
查看>>
ngrepeat数组_使用NgRepeat和NgForm构建动态角度形式
查看>>
使用Laravel 5和AngularJS构建时间跟踪器–第1部分
查看>>
学习JavaScript原生函数以及如何使用它们
查看>>