zoukankan      html  css  js  c++  java
  • Stream

    1:把字符串列表转成大写 放到一个字符串列表中:
    List<String> test = Stream.of("tomc", "javk", "Hello", "DICK").map(a -> a.toUpperCase()).collect(toList());
    System.out.println(test);   //输出: [TOMC, JAVK, HELLO, DICK]

    2: 统计整型数组 中大于 30 的数字放到整型数组中:
    List<Integer> test2 = Stream.of(20,40,60,80,45).filter(b->(b>30)).collect(Collectors.toList());

    System.out.println(test2); // 输出: [40, 60, 80, 45]

    3: List<String> lines = Arrays.asList("spring", "node", "mkyong"); 把几个字符串转化成ArrayList。

    4: 获取列表 对象中的一个字段,放入集合set中(去重):
    List<MongoMoguAttendenceDto> result = moguAttendanceDao.getMaxAttendanceTimeByStu();
    Set<String> studentIds = result.stream().map(MongoMoguAttendenceDto::getMemberId).collect(Collectors.toSet());

    5: 从对象list 中过滤出 符合条件的对象,并把过滤后的对象的某个字段放到 set 中。
    如下: 从 Person 列表中过滤出 地址是 changsha 的 Person, 并把这些Person 的 名字放到 set<String> 中:

    Person a = new Person("zhangsan",20,"wuhan");
    Person b = new Person("lisi",30,"changsha");
    List<Person> list = new ArrayList<>();
    list.add(a); list.add(b);
    String addr = "changsha";
    Set<String> set = list.stream().filter(p->p.getAddress().equals(addr)).map(Person::getName).collect(Collectors.toSet());
    System.out.print(set);     ---输出: [lisi]

    6: 对一个  List<GxyWarnEntity> warns  对象 ,用对象中的一个字段schoolId分组,保存在 Map<String, List<GxyWarnEntity>> 中:

    Map<String, List<GxyWarnEntity>> pushByTen= warns.stream().collect(Collectors.groupingBy(s->s.getSchoolId()));
                List<GxyTeacherDto> schoolTeachers = gxyTeacherMapper.selectAllTeacherByRoleNameAndDepIds(EnumRoleType.SCHOOLMANAGER.getKey(),null,new ArrayList<>(pushByTen.keySet()));
                if (schoolTeachers!=null && schoolTeachers.size() > 0) {
                    schoolTeachers.stream().forEach(d -> {
                        if (pushByTen != null && pushByTen.get(d.getSchoolId()) != null && pushByTen.get(d.getSchoolId()).size() > 0) {
    
                            List<GxyWarnEntity> allwarnTens = pushByTen.get(d.getSchoolId()).stream().filter(e -> e.getWarningType() == EnumUnsignType.UNSIGNTEN.getType()).collect(Collectors.toList());
                            if (allwarnTens != null && allwarnTens.size() > 0) {
                                noticeSentRecordDao.insertWarnTen(allwarnTens, d.getSchoolId());
                            }
                        }
                    });
                }

     对一个  List<GxyWarnEntity> warns  对象 ,用对象中的一个字段schoolId分组,保存在 Map<String, List<GxyWarnEntity>> 中, 遍历 

    pushByThree 的 keySet(),
    pushByThree.get(teacherId) 即可获取每个  List<GxyWarnEntity>:
     Map<String, List<GxyWarnEntity>> pushByThree = warns.stream().filter(e -> StringUtils.isNotEmpty(e.getClassTeacherId())).collect(Collectors.groupingBy(s -> s.getClassTeacherId()));
                for (String teacherId : pushByThree.keySet()) {
                    if (StringUtils.isNotEmpty(teacherId) && pushByThree != null && pushByThree.get(teacherId).size() > 0) {
                        List<GxyWarnEntity> allwarnThrees = pushByThree.get(teacherId).stream().filter(e -> e.getWarningType() == EnumUnsignType.UNSIGNTHREE.getType()).collect(Collectors.toList());
                        if (allwarnThrees != null && allwarnThrees.size() > 0) {
                            noticeSentRecordDao.insertWarnThree(allwarnThrees, teacherId);
                        }
                    }
                }
  • 相关阅读:
    vue.js代码开发最常见的功能集合
    干货|程序员常去的14个顶级开发社区
    17个Web前端开发工程师必看的国外网站
    识别“百度权重”作弊的方法
    问题与对策:CSS的margin塌陷(collapse)
    程序猿,你们这么拼是找不到妹纸的!
    Jquery UI的datepicker插件使用方法
    初识Ajax---简单的Ajax应用实例
    Ajax解决缓存的5种方法
    Jquery+bootstrap实现静态博客主题
  • 原文地址:https://www.cnblogs.com/z360519549/p/11009437.html
Copyright © 2011-2022 走看看