Java自学-集合框架 聚合操作

Posted 半米高峰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java自学-集合框架 聚合操作相关的知识,希望对你有一定的参考价值。

聚合操作

步骤 1 : 聚合操作

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

像这样:

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

但是要用好聚合,必须先掌握Lambda表达式

技术图片

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);
         
    }
}

以上是关于Java自学-集合框架 聚合操作的主要内容,如果未能解决你的问题,请参考以下文章

Java自学-集合框架 HashSet

Java自学-集合框架 Collections

Java自学-集合框架 LinkedList

Java自学-集合框架 List接口

Java自学-集合框架 HashSetLinkedHashSetTreeSet之间的区别

Java自学-集合框架 Comparator和Comparable