函数式接口和Stream操作练习

3 篇文章 0 订阅
package com.yang.demo.mapdemo;

import com.sun.org.apache.xpath.internal.operations.Bool;

import java.util.*;
import java.util.function.Function;

/**
 * @author <a href="mailto:1595550476@qq.com">KawYang</a>
 * Created by MacBook Pro on 2021/05/08.
 */
public class MapDemo {
    static Function<Integer, Boolean> Fn1 = e -> e < 25;
    static Function<Integer, Boolean> Fn2 = e -> e > 24 && e < 30;
    static Function<Integer, Boolean> Fn3 = e -> e > 29 && e < 40;

    static Map<Function<Integer, Boolean>, String> map =new HashMap<Function<Integer, Boolean>, String>(){
        {
            put(Fn1, "Fn1");
            put(Fn2, "Fn2");
        }
    };

    static List<Function<Integer, Boolean>> list = new ArrayList<Function<Integer, Boolean>>(){
        {
            add(Fn1);
            add(Fn2);
        }
    };

    public static void main(String[] args) {
        Optional<Function<Integer, Boolean>> x = map.keySet().stream().filter(e -> e.apply(28))
                .findFirst();
        Function<Integer, Boolean> stringStringFunction = x.orElse(Fn3);
        list.forEach(e->System.out.println(e.apply(25)));
    }
}

terminal

/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/java -...
false
true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
stream和lambda表达式是Java 8中引入的新特性,用于简化集合操作的代码。stream是一个顺序流或并行流,可以对集合中的元素进行各种操作,如过滤、转换、排序等,而不需要显式使用迭代器或循环。 lambda表达式是一种匿名函数,可以像一般的方法一样传递给其他方法或函数接口中使用。它可以简化代码的书写,并且使代码更易读和维护。通过lambda表达式,可以更加灵活地编写函数式接口的实现。 在练习文件"stream、lambda表达式练习.doc"中,我可以想到以下可能的练习内容: 1. 使用stream和lambda表达式对一个整数集合进行过滤,只保留偶数。 2. 使用stream和lambda表达式对一个字符串集合进行转换,将每个字符串转换为大写。 3. 使用stream和lambda表达式对一个学生对象集合进行排序,按照姓名字母顺序排序。 4. 使用stream和lambda表达式计算一个整数集合中所有元素的平均值。 5. 使用stream和lambda表达式对一个字符串集合进行去重,保留唯一的字符串。 这些练习可以帮助我们熟悉stream和lambda表达式的使用,并且体会到它们的便利之处。在实际的开发工作中,stream和lambda表达式能够大大简化我们的代码,并提升我们的开发效率。同时,它们也是函数式编程的一种体现,使得我们可以更加灵活地处理集合中的元素,提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值