• Java学习-聚合操作


    准备10个Hero对象,hp和damage都是随机数。
    分别用传统方式和聚合操作的方式,把hp第三高的英雄名称打印出来

     1 package generic_Lambda;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Arrays;
     5 import java.util.Collections;
     6 import java.util.List;
     7 import java.util.Random;
     8 
     9 import charactor.Hero;
    10 
    11 public class testAggregate {
    12 
    13     public static void main(String[] args) {
    14         Random r = new Random();
    15         List<Hero> heros = new ArrayList<Hero>();
    16         for (int i = 0; i < 5; i++) {
    17             heros.add(new Hero("hero " + i, r.nextInt(1000), r.nextInt(100)));
    18         }
    19         System.out.println("源数据:
    " + heros);
    20         System.out.println("把hp第三高的英雄名称打印出来");
    21         System.out.println("传统方式(冒泡排序):");
    22         // 冒泡排序思想
    23         for (int j = heros.size() - 1; j >= heros.size() - 3; j--) {
    24             for (int i = 0; i + 1 <= j; i++) {
    25                 if (heros.get(i).hp > heros.get(i + 1).hp) {
    26                     Hero tmp = heros.get(i);
    27                     heros.set(i, heros.get(i + 1));
    28                     heros.set(i + 1, tmp);
    29                 }
    30             }
    31         }
    32         System.out.println("	hp第三高的英雄名是:" + heros.get(heros.size() - 3).name);
    33 
    34         System.out.println("传统方式(Collections.sort()):");
    35         Collections.sort(heros, (h1, h2) -> h2.hp > h1.hp ? 1 : -1);
    36         System.out.println("	hp第三高的英雄名是:" + heros.get(2).name);
    37 
    38         System.out.println("采用聚合方式:");
    39         Hero maxHPHero = heros.stream().sorted((h1, h2) -> h2.hp > h1.hp ? 1 : -1).skip(2).findFirst().get();  //跳过头两个,然后findFist()就是第三大的数据
    40         System.out.println("	hp第三高的英雄名是:" + maxHPHero.name);
    41     }
    42 }

    效果图:

  • 相关阅读:
    Extjs杂记录
    Extjs获得组件值的方式
    Extjs选中多行Grid提交
    Extjs定时操作
    Maven自动部署Tomcat错误排除
    Eclipse下maven部署web项目到tomcat7(兼容tomcat8)
    MyEclipse 2013安装后要做的几件事
    从零开始学习SSH框架笔记之四 几个关键配置文件备忘(模板)
    虚机,操作系统启动以后,卡住不动了,按F2,出现缺失文件的内容
    chroot命令
  • 原文地址:https://www.cnblogs.com/gilgamesh-hjb/p/12233138.html
Copyright © 2020-2023  润新知