4.9总结(Stream流,方法引用概述 || 乘法逆元,组合数)

Stream流

        基本概念:以更简便的方式操作集合数据的形式;

        Steam流的操作步骤:

        获取Stream流 

        中间方法:去重,跳过,获取, 过滤, 合并流,转换类型;

        终结方法:遍历,统计,收集(进数组 / 进集合);

        小练习

import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;


//将集合中的元素提取并转换

public class Streamdemo02 {
    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("zhangsan,23");
        list1.add("lisi,24");
        list1.add("wangwu,25");


//        list1.stream()
//                .filter(s -> Integer.parseInt(s.split(",")[1]) >= 24)
//                .collect(Collectors.toMap(new Function<String, String>() {
//                    @Override
//                    public String apply(String s) {
//                        return s.split(",")[0];
//                    }
//                }, new Function<String, Integer>() {
//                    @Override
//                    public Integer apply(String s) {
//                        return Integer.parseInt(s.split(",")[1]);
//                    }
//                }));

        Map<String, Integer> map = list1.stream().
                filter(s -> Integer.parseInt(s.split(",")[1]) >= 24)
                .collect(Collectors.toMap(
                        s -> s.split(",")[0],
                        s -> Integer.parseInt(s.split(",")[1])));

        System.out.println(map);


    }
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

//去除奇数保留偶数

public class Streamdemo01 {
    public static void main(String[] args) {
        ArrayList<Integer> list1 = new ArrayList<Integer>();
//        for(int i = 1; i <= 10; i++)  list1.add(i);

        Collections.addAll(list1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);


//        Stream<Integer> stream1 = list1.stream();
//        stream1.filter(new Predicate<Integer>() {
//            @Override
//            public boolean test(Integer integer) {
//                return integer % 2 == 1;
//            }
//        }).forEach(integer -> System.out.println(integer));


        List<Integer> newList = list1.stream()
                .filter(n -> n % 2 == 0)
                .collect(Collectors.toList());

        System.out.println(newList);

    }
}

 方法引用概述

       1. 基本概念:将已经存在的方法引用,作为函数式接口中抽象方法的方法体;

        2.特点: “ ::” 符号,方法引用符;

        3.注意事项

  • 需要有函数式接口
  • 被引用方法的参数和返回值应和抽象方法保持一致;
  • 被引用方法应满足使用需求;

        4.分类


算法部分:乘法逆元,组合数icon-default.png?t=N7T8http://t.csdnimg.cn/ii0mi 

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值