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