Lambda表达式有参数有返回值


Lambda表达式有参数有返回值的:

需求:使用数组存储多个Person对象

对数组中的Person对象使用Arrays的sort方法通过年龄进行升序排序

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;

public class Demo01Arrays {
    public static void main(String[] args) {
        //使用数组存储多个Person对象
        Person[] arr={
                new Person("柳岩",30),
                new Person("大大",23),
                new Person("传奇",25),

        };
        //1.对数组中的Person对象使用Arrays的sort方法通过年龄进行升序(前面-后面)排序
        Arrays.sort(arr, new Comparator<Person>() {
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        //2.使用Lambda表达式,简化匿名内部类
Arrays.sort(arr,(Person o1,Person o2)->{
return o1.getAge()-o2.getAge();
});
//遍历数组 for (Person p:arr){ System.out.println(p); } } }

 

 

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

 

需求:

给定一个计算器Calculator接口,内含抽象方法calc可以将两个int数字相加得到和值

使用Lambda的标准格式调用invokeCalc方法,完成120和130的相加计算

public class Demo02Calculator {
    public static void main(String[] args) {
        invokeCalc(1, 2, new Calculator() {
            @Override
            public int calc(int a, int b) {
                return a+b;
            }
        });
        //使用Lambda表达式简化内部类的书写
        invokeCalc(10,20,(int a,int b)->{
            return a+b;
        });
    }
    //定义一个方法
    //参数传递两个int类型的整数
    //参数传递Calculator接口
    //方法内部调用Calculator中的方法calc计算两个整数的和
    public static void invokeCalc(int a,int b,Calculator c){
        int sum=c.calc(a,b);
        System.out.println(sum);
    }
}

 

import java.security.PublicKey;

public interface Calculator {
    //定义一个计算两个int整数和的方法并返回结果
    public abstract int calc(int a,int b);

}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM