精华内容
下载资源
问答
  • java lambda表达式用法

    2020-04-20 10:56:49
    java lambda表达式检查list集合是否存在某个值 public class Test { public static void main(String[] args) { People p1 = new People("1","李红", "小红"); People p2 = new People("2","李逵", "小逵"); ...
    import java.util.ArrayList;
    import java.util.List;
    import java.util.stream.Collectors;
    
    
    public class Test {
    
        public static void main(String[] args) {
    
            People p1 = new People("1","李红", 50);
            People p2 = new People("2","李逵", 20);
            List<People> list = new ArrayList<People>();
            list.add(p1);
            list.add(p2);
    
    
            People p3 = new People("1","诸葛亮", 80);
            People p4 = new People("2","李逵", 40);
            List<People> list1 = new ArrayList<People>();
            list1.add(p3);
            list1.add(p4);
    
            // 1、java lambda表达式检查list集合是否存在某个值
            boolean bool = list.stream().anyMatch(people -> people.getId().equals("3"));
            System.out.println("bool:"+ bool);
    
            List<People> data = list.stream().filter(people -> people.getId().equals("1")).collect(Collectors.toList());
            if(data != null && !data.isEmpty()){
                for (People people : data){
                    System.out.println("id="+ people.getId() +":name="+ people.getName());
                }
            }
    
            List<People> peopleList = new ArrayList<People>();
            //2、遍历两个list 取交集
            list.forEach(people -> {
                People people1 = list1.stream().filter(people2 ->
                        people.getId().equals(people2.getId())).findFirst().orElse(null);
                if(people1 != null){
                    int  score = people.getScore() == null ? 0: people.getScore();
                    int  score1 = people1.getScore() == null ? 0: people1.getScore();
                    people1.setScore(score + score1);
                }
                peopleList.add(people1);
            });
    
            if(peopleList != null && !peopleList.isEmpty()){
                for (People people : peopleList){
                    System.out.println("id="+ people.getId() +":name="+ people.getName()+":score ="+ people.getScore());
                }
            }
            // 3获取某个对象的list集合
            List<String> nameList = list.stream().map(e -> e.getName()).collect(Collectors.toList());
    
            System.out.println(nameList.size());
    
        }
    }

     

    结果:

    bool:false
    id=1:name=李红
    id=1:name=诸葛亮:score =130
    id=2:name=李逵:score =60
    2

    public class People {
    
        private String id ;
        private String name;
        private Integer score;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getScore() {
            return score;
        }
    
        public void setScore(Integer score) {
            this.score = score;
        }
    
        public People(String id, String name, Integer score) {
            super();
            this.id = id;
            this.name = name;
            this.score = score;
        }
    
    }

     

     

     

    展开全文
  • 主要介绍了java lamda表达式用法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 这篇文章主要介绍了java lamda表达式用法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下1、什么是函数式编程(百度百科上的解释)2、为什么要使用函数式编程...

    这篇文章主要介绍了java lamda表达式用法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    1、什么是函数式编程(百度百科上的解释)

    2398766a828739e3c0e2bc1df5450504.png

    2、为什么要使用函数式编程(有什么好处)

    1、代码简洁,减少代码量

    2、接近自然语言,容易理解

    传统实现分组

    List students;

    Map> maps = Maps.newHashMap();

    for(Student student : students){

    List studentList = students.getOrDefault(student.getSex(), Lists.newArrayList());

    studentList.add(student);

    maps.put(student.getSex(), studentList);

    }

    使用lambda表达式

    Map> maps = student.stream.collect(Collerctor.groupBy(Student :: getSex));

    3、很好实现并发处理

    3、什么是lambda表达式

    1、方法体为表达式,使用return将表达结果返回回去

    (paramates)-> expression

    (a, b) -> return a + b

    2、方法体为代码块,必须用{}包含起来,且需要使用return返回值,但是如果代码块返回的是void,那么不需要返回值

    (parameter) -> {statements;}

    (int a) -> (System.out.println(a))

    (int a) -> (return a*a);

    4、lambda的底层实现

    BinaryOperator binaryOperator = (int a, int b) -> {return a + b;};

    if(binaryOperator instanceof BinaryOperator){System.out.println(binaryOperator.getClass());}

    int sum = binaryOperator.applyAsInt(2,3);

    System.out.println(sum);

    可以看出来binaryOperator其实是继承BinaryOperator的一个匿名内部类

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • Lambda表达式作为Java最值得学习的特性之一,写得好的lambda表达式可以极大的减少代码冗余,可读性也会优于冗长的内部类,匿名类。 lambda表达式语法 lambda表达式的一般语法 (Type1 param1, Type2 param2, …, ...

    Lambda表达式作为Java最值得学习的特性之一,写得好的lambda表达式可以极大的减少代码冗余,可读性也会优于冗长的内部类,匿名类。

    lambda表达式语法

    1. lambda表达式的一般语法

    (Type1 param1, Type2 param2, …, TypeN paramN) -> {
    statment1;
    statment2;
    //…
    return statmentM;
    }
    这是lambda表达式的完全式语法,后面几种语法是对它的简化。

    1. 单参数语法

    param1 -> {
    statment1;
    statment2;
    //…
    return statmentM;
    }
    当lambda表达式的参数个数只有一个,可以省略小括号
    例如:将列表中的字符串转换为全小写
    List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
    List lowercaseNames1 = proNames.stream().map(name -> {return name.toLowerCase();}).collect(Collectors.toList());

    1. 单语句写法

    param1 -> statment
    当lambda表达式只包含一条语句时,可以省略大括号、return和语句结尾的分号。
    例如:将列表中的字符串转换为全小写
    List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
    List lowercaseNames2 = proNames.stream().map(name -> name.toLowerCase()).collect(Collectors.toList());

    1. 方法引用写法

    Class or instance :: method
    例如:将列表中的字符串转换为全小写
    List proNames = Arrays.asList(new String[]{“Ni”,“Hao”,“Lambda”});
    List lowercaseNames3 = proNames.stream().map(String::toLowerCase).collect(Collectors.toList());

    Reference

    Java8特性详解 lambda表达式 Stream
    Java8 lambda表达式10个示例

    展开全文
  • lambda表达式,通过-&gt;,实现一个类中的接口(在该类中只有这个接口要实现) //使用 lambda expression实现runnable类中唯一需要实现的接口run Runnable race2 = () -&gt; System.out.println("...

    https://blog.csdn.net/renfufei/article/details/24600507

    lambda表达式,通过->,实现一个类中的接口(在该类中只有这个接口要实现)

    //使用 lambda expression实现runnable类中唯一需要实现的接口run
    Runnable race2 = () -> System.out.println("Hello world !");
    

    或者实现普通的函数

    
    //  接收2个int型整数,返回他们的和
    (int x, int y) -> x + y

     

    展开全文
  • 主要介绍了java8之lambda表达式用法总结,需要的朋友可以参考下
  • Lambda表达式的作用:Lambda表达式的作用就是简化代码开发,让代码看起来更加简介。它是用来简化匿名内部类的。但是并不是所有的匿名内部类都能用Lambda表达式简化,Lambda表达式是有使用前提的。Lambda表达式的使用...
  • 简介lambda表达式JAVA8中提供的一种新的特性,它支持Java也能进行简单的“函数式...本文将介绍关于Java8 Lambda表达式的一些复杂用法,分享出来供大家参考学习,下面来一起看看详细的介绍:复杂用法实例传入数组...
  • lambda表达式介绍python中有一种灵活,便捷的且具有函数功能的表达式:lambda表达式lambda表达式,又称匿名函数,是现代各种编程语言争相引入的一种语法,其功能堪比函数,设计却比函数简洁。python lambda表达式...
  • Lambda表达式用法

    2020-10-26 22:11:32
    文章目录什么是Lambda表达式用法无参数无返回值无参数有返回值有参数无返回值有参数有返回值函数式接口 什么是Lambda表达式 Lambda表达式是Java8的一个新特性,可以使代码更加的简洁,提高代码可读性(如果没学过...
  • Java Lambda表达式

    2020-12-17 14:33:26
    Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过invokedynamic指令来实现Lambda表达式的。具体原理放到下一篇。...
  • 主要介绍了Java Lambda表达式,结合简单实例形式分析了Lambda表达式功能、原理、用法及相关操作注意事项,需要的朋友可以参考下
  • java8时间和lambda表达式用法 //Lambda表达式用法 List<Integer> list=new ArrayList<>(); list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);list.add(6);list.add(7);list.add(8);list....
  • javalambda表达式用法

    2019-07-29 13:19:50
    非常详细的lambda表达式案例 List < Person > personList = new ArrayList < > ( ) ; personList . add ( new Person ( 1 , "北京" , "张三" ) ) ; personList . add ( new Person ( 2 , "上海" ...
  • 详解Java Lambda表达式

    2020-10-28 16:11:12
    Java Lambda表达式的一个重要用法是简化某些匿名内部类(Anonymous Classes)的写法。实际上Lambda表达式并不仅仅是匿名内部类的语法糖,JVM内部是通过***invokedynamic***指令来实现Lambda表达式的。具体原理放到下...
  • 用法一:倒序排列集合,获取最大值 private static Comparator&amp;amp;amp;amp;amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;amp;amp;amp;amp;gt; comparator = (i1,i2) -&amp;amp;amp;amp;amp;amp;...
  • 常用Lambda表达式 1.替代匿名内部类 3.用lambda表达式实现map 4.用lambda表达式实现map与reduce 5.filter操作 6.与函数式接口Predicate配合 7.Match(匹配) 8.Limit(限制) 9.compare(排序) 什么是函数...
  • java Lambda表达式

    2021-04-07 11:12:10
    java8已发布四年之久,但是一直没研究java8的相关新特性,前几天有点闲,就学习了java8的新特性之一lambda表达式,下面就按照我的理解讲讲一些用法。 刚开始使用lambda表达式的时候,感觉不习惯,但是使用了以后...
  • 首先说下Lambda表达式的优点和缺点:优点:1:简洁2:易并行计算,特别适合便利结果,循环计算数值或者赋值的时候很方便缺点:1:若不用并行运算,很多时候计算方式速度没有传统的For循环快。2:不容易使用Debug模式...
  • 双冒号运算就是Java中的[方法引用]...这种式子一般是用作Lambda表达式,Lambda有所谓懒加载嘛,不要括号就是说,看情况调用方法。例如表达式:person -> person.getAge();可以替换成Person::getAge表达式() ->...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 547
精华内容 218
关键字:

javalambda表达式用法

java 订阅