zoukankan      html  css  js  c++  java
  • java8 流操作

     对应的代码:

    package com.company.stream;
    
    import java.util.Comparator;
    import java.util.List;
    import java.util.stream.Collectors;
    
    // java8去处理集合
    public class StreamBasic {
    
        public static void main(String ... args) {
            getLowCaloricDishesNamesInJava8(Dish.menu).forEach(System.out :: println);
        }
    
        //我们可以在程序中进行数据库式的查询。
    
        /**
         * filter ——接受Lambda,从流中排除某些元素。在本例中,通过传递lambda d ->
         * d.getCalories() > 300 ,选择出热量超过300卡路里的菜肴。
         *
         * map ——接受一个Lambda,将元素转换成其他形式或提取信息。在本例中,通过传递方
         * 法引用 Dish::getName ,相当于Lambda d -> d.getName() ,提取了每道菜的菜名。
         *
         * limit ——截断流,使其元素不超过给定数量。
         *
         * collect ——将流转换为其他形式。
         * @param dishes
         * @return
         */
        public static List<String> getLowCaloricDishesNamesInJava8(List<Dish> dishes){
           return dishes.stream()
                    .filter(d -> d.getCalories() > 300)  //卡路里高于 300
                    .sorted(Comparator.comparing(Dish :: getCalories).reversed()) //根据卡路里进行倒序 大的在上面。
                    .limit(3)  //只选取前三个
                    .map(Dish::getName) //提取名字
                    .collect(Collectors.toList()); // 将所有的名字保存到list中。
        }
    
    }

     flatmap 方法让你把一个流中的每个值都换成另一个流,然后把所有的流连接起来成为一个流

  • 相关阅读:
    pytest学习(2)
    pytest学习(1)
    facets学习(1):什么是facets
    window10下部署flask系统(apache和wsgi)
    python tips:列表推导
    python的一致性(1)sorted和len
    THULAC:一个高效的中文词法分析工具包(z'z)
    EAScript 2016的新增语法(1)
    python的property的用法
    python算法:LinkedList(双向线性链表)的实现
  • 原文地址:https://www.cnblogs.com/bulrush/p/12303509.html
Copyright © 2011-2022 走看看