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 方法让你把一个流中的每个值都换成另一个流,然后把所有的流连接起来成为一个流

  • 相关阅读:
    MVC系列-7.更新
    MVC系列-6.注册页面
    MVC系列-5.详细信息
    MVC系列-4.布局页
    MVC系列-3.数据显示
    MVC系列-2.数据处理-登陆
    MVC系列-1.MVC入门
    bootstrap table 服务器端分页--ashx+ajax
    swift学习第八天:元组
    swift学习第七天:字典
  • 原文地址:https://www.cnblogs.com/bulrush/p/12303509.html
Copyright © 2011-2022 走看看