• lambda表达式分类


    public class StreamTest {
        public static void main(String[] args) {
            createStream();
            getForEach();
            getMap();
            getFilter();
            getLimit();
            getSorted();
            getParallel();
            getCollectors();
            getStatistics();
            getSumAll();
        }
    
        /**
         * 1.生成Stream
         */
        public static void createStream(){
            System.out.println("-------------------->>>>>>>>>>生成Stream");
            List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
            List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
            filtered.forEach(System.out::println);
        }
    
        /**
         * 2.forEach
         */
        public static void getForEach(){
            System.out.println("-------------------->>>>>>>>>>forEach");
            Random random = new Random();
            random.ints().limit(10).forEach(System.out::println);
        }
    
        /**
         * 3.map
         */
        public static void getMap(){
            System.out.println("-------------------->>>>>>>>>>map");
            List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
            // 获取对应的平方数
            List<Integer> squaresList = numbers.stream().map(i -> i * i).distinct().collect(Collectors.toList());
            squaresList.forEach(System.out::println);
        }
    
        /**
         * 4.filter
         */
        public static void getFilter(){
            System.out.println("-------------------->>>>>>>>>>filter");
            List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
            // 获取空字符串的数量
            int count = (int) strings.stream().filter(string -> string.isEmpty()).count();
            System.out.println("空字符串的数量: "+count);
        }
    
        /**
         * 5.limit
         */
        public static void getLimit(){
            System.out.println("-------------------->>>>>>>>>>limit");
            Random random = new Random();
            random.ints().limit(10).forEach(System.out::println);
        }
    
        /**
         * 6.sorted
         */
        public static void getSorted(){
            System.out.println("-------------------->>>>>>>>>>sorted");
            Random random = new Random();
            random.ints().limit(10).sorted().forEach(System.out::println);
        }
    
        /**
         * 7.并行(parallel)程序
         */
        public static void getParallel(){
            System.out.println("-------------------->>>>>>>>>>parallel");
            List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
            // 获取空字符串的数量
            int count = (int) strings.parallelStream().filter(string -> string.isEmpty()).count();
            System.out.println("parallel: " + count);
        }
    
        /**
         * 8.Collectors
         */
        public static void getCollectors(){
            System.out.println("-------------------->>>>>>>>>>Collectors");
            List<String> list = Arrays.asList("abc", "", "bc", "efg", "abcd", "", "jkl");
            List<String> filtered = list.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
            System.out.println("筛选列表: " + filtered);
            String mergedString = list.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
            System.out.println("合并字符串: " + mergedString);
        }
    
        /**
         * 9.统计Statistics
         */
        public static void getStatistics(){
            System.out.println("-------------------->>>>>>>>>>Statistics");
            List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
            IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
            System.out.println("列表中最大的数 : " + stats.getMax());
            System.out.println("列表中最小的数 : " + stats.getMin());
            System.out.println("所有数之和 : " + stats.getSum());
            System.out.println("平均数 : " + stats.getAverage());
        }
    
        /**
         * 10.求和集合某个属性
         */
        public static void getSumAll(){
            System.out.println("-------------------->>>>>>>>>>Statistics");
            List<GsonFormatModel> numbers = new ArrayList<>();
            GsonFormatModel gsonFormatModel = new GsonFormatModel();
            gsonFormatModel.setFrom(111);
            numbers.add(gsonFormatModel);
            GsonFormatModel gsonFormatModel1 = new GsonFormatModel();
            gsonFormatModel1.setFrom(999);
            numbers.add(gsonFormatModel1);
            int  stats = numbers.stream().mapToInt(GsonFormatModel::getFrom).sum();
            System.out.println("所有数之和 : " + stats);
        }
    
    
    
    }
  • 相关阅读:
    THINKPHP 错误:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
    Vs2013 坑爹的Target framework问题
    在使用Vs2013打开Vs2008的解决方案时出现了以下错误:此版本的应用程序不支持其项目类型(.csproj)
    sql server2008R2 无法连接到WMI提供程序。你没有权限或者该服务器无法访问
    SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。
    [UE4]手持多把枪的位置调节
    [UE4]函数分组
    [UE4]射击起点、终点的计算方法
    [UE4]条件融合动画: Blend Posed by int
    [UE4]函数和事件的区别
  • 原文地址:https://www.cnblogs.com/heqiyoujing/p/11139949.html
Copyright © 2020-2023  润新知