Lambda表达式总结
唐某 2020-11-10 13:31:12 2020-11-10 158 0
原文:https://blog.csdn.net/zxzxzx0119/article/details/82392396
# Lambda表达式总结
一、使用范例以及例子
使用匿名内部类:
Comparator<Integer>com = new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { //降序排列 return Integer.compare(o2,o1); }};
使用Lambda
表达式:
Comparator<Integer> com = (x, y) -> Integer.compare(y, x);
下面给出一个例子来引入Lambda
表达式。
给出一个Employee
类,有name、age、salary
三个属性:
public class Employee { private String name; private int age; private double salary; public Employee() { } public Employee(String name, int age, double salary) { this.name = name; this.age = age; this.salary = salary; } public String getName() { return name; } public int getAge() { return age; } public double getSalary() { return salary; } @Override public String toString() { return "name='" + name + '\'' + ", age=" + age + ", salary=" + salary; }}
然后我们需要通过限制查询数据:
- 比如查询年龄
>25
岁的所有员工的信息; - 再如查询工资
>4000
的员工信息;
首先给出一个List
集合类模拟数据库表:
//将数组转换成集合的List<Employee> employees = Arrays.asList( new Employee("张三",23,3333.33), new Employee("李四",24,4444.44), new Employee("王五",25,5555.55), new Employee("赵六",26,6666.66), new Employee("田七",27,7777.77));
1、原始方法
然后我们写分别查询出年龄大于25
岁的员工信息和工资大于4000
的员工信息,发现findEmployeesByAge
和findEmployeesBySalary
两个方法代码非常的相似,只有查询条件不同,所以这个方法是不太可取的。
```java
public void test3(){ //年龄 List//原始方法 : 查询出年龄大于25岁的(这个是最原始的方法)
public List//原始方法 : 查询出工资大于4000的(这个是最原始的方法)
//和上面的方法唯一的差别只有年龄和工资的改动,代码冗余public List