jdk1.8新特性 lambda表达式

jdk8中规范的四大函数接口:

    @Test
    public void test1(){
        // Consumer消费型接口,只消费,不返回,
        List<String> consumerList = Lists.newArrayList();
        consumerList.add("consumer");
        consumerList.add("consumer1");
        consumerList.add("consumer2");
        Consumer<List<String>> consumer =
                x -> { List<String> stringList1 = x;for (String  str : stringList1){ System.out.println("Consumer消费型接口:"+str); } };
        consumer.accept(consumerList);
        // Predicate断言型接口,
        Predicate<String> predicate = x -> x.contains("pre");
        System.out.println("Predicate断言型接口:"+predicate.test("predicate"));
        // Supplier供给型接口,无入参,有出参,
        Supplier<String> supplier = () -> "Supplier供给型接口";
        System.out.println("supplier:"+supplier.get());
        // Function函数型接口,有入参,有出参
        Function<String,Integer> function = x -> Objects.isNull(x) ? 0:x.length();
        System.out.println("Function函数型接口:"+function.apply("consumer"));
    }

lambda表达式:四大函数接口的应用

  public void test2(){
        List<String> stringList = Lists.newArrayList();
        stringList.add("test");
        stringList.add("tt");
        stringList.add("1t");
        stringList.add("bt");
        stringList.add("bt");
        List<Integer> list = stringList.stream().map(x -> x.contains("test")?0:x.length()).collect(Collectors.toList());
        System.out.println("list:"+JSON.toJSONString(list));
        List<String> list1 = stringList.stream().filter(x -> x.contains("tes")).collect(Collectors.toList());
        System.out.println("list1:"+JSON.toJSONString(list1));
        List<String> list2 = stringList.stream().sorted().collect(Collectors.toList());
        System.out.println("list2:"+JSON.toJSONString(list2));
        List<Keywordrecord> keywordrecords = Lists.newArrayList();
        Map<String,Keywordrecord> stringMap = keywordrecords.stream().collect(Collectors.toMap((key -> key.getKeyrecord()),(key -> key), (x,y) -> x));
        System.out.println("stringMap:"+JSON.toJSONString(stringMap));
        BinaryOperator<String> binaryOperator = (x,y) -> x;
        stringList.stream().collect(Collectors.toMap(x -> x, x -> x,binaryOperator));
        String[] string = stringList.stream().toArray(String[]::new);
        System.out.println("string:"+JSON.toJSONString(string));
        List<String> strList = stringList.stream().collect(Collectors.toList());
        System.out.println("strList:"+JSON.toJSONString(strList));
        List<String> aaList = stringList.stream().filter(x -> x.contains("t")).distinct().sorted().collect(Collectors.toList());
        System.out.println("aaList:"+JSON.toJSONString(aaList));
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值