[ Lambda ] Java8 新特性 Lambda表达式

Lambda 表达式


一、基础语法

(参数列表) -> { 表达式 }

二、lambda表达式的重要特征:

  • 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。
(int a, int b) -> {
	 System.out.println(a+b);
}

简写为

(a,b) -> {
	 System.out.println(a+b);
}
  • 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。
(a) -> {
	 System.out.println(a);
}

简写为

a -> {
	 System.out.println(a);
}
  • 可选的大括号:如果主体包含了一个语句,就不需要使用大括号。
(a,b) -> {
	 System.out.println(a+b);
}

简写为

(a,b) -> System.out.println(a+b)
  • 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。
(a,b) -> {
	 return a+b;
}

简写为

(a,b) -> a+b

二、lambda表达式实例


1. 集合遍历

// 集合遍历
    private static void out(){
        ArrayList<Integer> list = new ArrayList<>();
        Collections.addAll(list,1,2,3,4,5,6,7,8,9,10);
        // 遍历输出
        list.forEach(System.out::println);
        // 输出所有偶数
        list.forEach(ele -> {
            if(ele % 2 == 0){
                System.out.println(ele);
            }
        });
    }

2. 集合排序

// ArrayList 排序
    private static void listSort(){
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person("aaa",23));
        list.add(new Person("bbb",12));
        list.add(new Person("ccc",45));
        list.add(new Person("ddd",36));
        list.add(new Person("eee",19));
        list.add(new Person("fff",19));

        list.sort((o1,o2)-> o1.age - o2.age);
        System.out.println(list);
    }
    // TreeSet 排序
    private static void setSort(){
//        TreeSet<Person> set = new TreeSet<>((o1,o2)-> o1.age - o2.age);
        TreeSet<Person> set = new TreeSet<>((o1,o2)-> {
            if(o1.age >= o2.age) {
                return -1;
            } else {
                return 1;
            }
        });
        set.add(new Person("aaa",23));
        set.add(new Person("bbb",12));
        set.add(new Person("ccc",45));
        set.add(new Person("ddd",36));
        set.add(new Person("eee",19));
        set.add(new Person("fff",19));

        System.out.println(set);
    }

3.删除集合中符合条件的元素

// ArrayList 删除元素
    private static void listRemove(){
        ArrayList<Person> list = new ArrayList<>();
        list.add(new Person("aaa",23));
        list.add(new Person("bbb",12));
        list.add(new Person("ccc",45));
        list.add(new Person("ddd",36));
        list.add(new Person("eee",19));
        list.add(new Person("fff",19));

        list.removeIf(ele-> ele.age > 40);
        System.out.println(list);
    }

在这里插入图片描述

发布了130 篇原创文章 · 获赞 1232 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qq_43901693/article/details/104373769