码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JAVA中常用的10个Lambda表达式


    1、集合遍历

    1. List stringList = Arrays.asList("apppe","organge","banana");
    2. // 原来的方式
    3. for (String s : stringList) {
    4. System.out.println(s);
    5. }
    6. // lambda 表达式
    7. stringList.forEach(s->{
    8. System.out.println(s);
    9. });

    2、排序

    1. List dogs = Arrays.asList(new Dog[]{
    2. new Dog("n1", 12),
    3. new Dog("n2", 14),
    4. new Dog("n3", 11)
    5. });
    6. // 方法1
    7. Collections.sort(dogs, new Comparator() {
    8. @Override
    9. public int compare(Dog o1, Dog o2) {
    10. return o1.getAge()>o2.getAge()?-1:1;
    11. }
    12. });
    13. // 方法2
    14. Collections.sort(dogs,(o1,o2)->(o1.getAge()>o2.getAge()?-1:1));
    15. dogs.forEach(s->{
    16. System.out.println(s.getAge());
    17. });

    注意:-1:代表第一个对象,1:代表第二个对象 

    3、过滤

    1. List stringList = Arrays.asList("apple","organge","banana");
    2. // 获取集合中所有以“a”开头的字符串
    3. // 原来的方式
    4. List newList = new ArrayList();
    5. for (String s : stringList) {
    6. if(s.startsWith("a")){
    7. newList.add(s);
    8. }
    9. }
    10. // lambda表达式
    11. List newList2 = stringList.stream().filter(s -> {
    12. if(s.startsWith("a")){
    13. return true;
    14. }
    15. return false;
    16. }).collect(Collectors.toList());

    4、映射

    1. List stringList = Arrays.asList("apple","organge","banana");
    2. // 获取集合中所有字符串的长度
    3. // 原来的方式
    4. List newList = new ArrayList();
    5. for (String s : stringList) {
    6. newList.add(s.length());
    7. }
    8. // lambda表达式
    9. List newList2 = stringList.stream().map(s -> {
    10. return s.length();
    11. }).collect(Collectors.toList());
    12. // lambda 表达式
    13. newList2.forEach(s->{
    14. System.out.println(s);
    15. });

    注意:lambda表达式中的map函数把每个元素进行转换操作

    5、规约

    1. List numList = Arrays.asList(1,2,3,4,5);
    2. // 计算综合
    3. // 原来的方式
    4. Integer sum = 0;
    5. for (Integer s : numList) {
    6. sum += s;
    7. }
    8. // lambda表达式
    9. sum = numList.stream().reduce(0,(a,b)->{
    10. return a+b;
    11. });

    6、分组

    1. List dogs = Arrays.asList(new Dog[]{
    2. new Dog("n1", 12),
    3. new Dog("n2", 14),
    4. new Dog("n3", 12)
    5. });
    6. // 根据年龄进行分组
    7. Map> collect = dogs.stream()
    8. .collect(Collectors.groupingBy(s -> s.getAge()));
    9. System.out.println(collect);

    7、Stream流水操作

  • 相关阅读:
    Python处理矩形和圆的关系,处理矩形和多边形的关系
    常见的java话题
    如何利用python来提取SQL语句中的表名称
    官方零基础入门 Jetpack Compose 的中文课程来啦!
    Vue项目引入腾讯地图,实现可以根据关键词搜出相关位置,并定位到该位置
    stm32——hal库学习笔记(IIC)
    【JavaSE】JavaSE之运算符详解
    【配电网优化】基于粒子群算法结合MATPOWER实现GARVER-6配电网系统优化网架规划及交流潮流计算附matlab代码
    MySQL存储过程手册,及创建存储过程:循环为所有表添加字段
    【面试经典150 | 数组】删除有序数组中的重复项 II
  • 原文地址:https://blog.csdn.net/qq_29530893/article/details/133348941
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号