zoukankan      html  css  js  c++  java
  • java集合框架之聚合操作stream

    参考http://how2j.cn/k/collection/collection-aggregate/702.html#nowhere

    聚合操作

    JDK8之后,引入了对集合的聚合操作,可以非常容易的遍历,筛选,比较集合中的元素。

    像这样:

            String name =heros
                .stream()
                .sorted((h1,h2)->h1.hp>h2.hp?-1:1)
                .skip(2)
                .map(h->h.getName())
                .findFirst()
                .get();

    但是要用好聚合,必须先掌握Lambda表达式,聚合的章节讲放在Lambda与聚合操作部分详细讲解

    TestAggregate代码

    package lambda;
      
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    import java.util.Random;
     
    import charactor.Hero;
      
    public class TestAggregate {
      
        public static void main(String[] args) {
            Random r = new Random();
            List<Hero> heros = new ArrayList<Hero>();
            for (int i = 0; i < 10; i++) {
                heros.add(new Hero("hero " + i, r.nextInt(1000), r.nextInt(100)));
            }
     
            System.out.println("初始化集合后的数据 (最后一个数据重复):");
            System.out.println(heros);
             
            //传统方式
            Collections.sort(heros,new Comparator<Hero>() {
                @Override
                public int compare(Hero o1, Hero o2) {
                    return (int) (o2.hp-o1.hp);
                }
            });
             
            Hero hero = heros.get(2);
            System.out.println("通过传统方式找出来的hp第三高的英雄名称是:" + hero.name);
             
            //聚合方式
            String name =heros
                .stream()
                .sorted((h1,h2)->h1.hp>h2.hp?-1:1)
                .skip(2)
                .map(h->h.getName())
                .findFirst()
                .get();
     
            System.out.println("通过聚合操作找出来的hp第三高的英雄名称是:" + name);
             
        }
    }
  • 相关阅读:
    MVC知识点01
    MVC知识点02
    ADO.NET基础01
    WinForm,MVC知识点
    C#基础01
    28、对多次使用的RDD进行持久化或Checkpoint
    27、优化数据结构
    26、高性能序列化类库
    25、诊断内存的消耗
    24、Checkpoint原理剖析
  • 原文地址:https://www.cnblogs.com/lijingran/p/9089013.html
Copyright © 2011-2022 走看看