public class Java8Test {

 
    public static void main(String[] args) {
 
        Person p1 = new Person("麻子"31);
        Person p2 = new Person("李四"20);
        Person p3 = new Person("王五"26);
 
        List<Person> personList = new ArrayList<Person>();
        personList.add(p1);
        personList.add(p2);
        personList.add(p3);
 
        //java8遍历
        personList.forEach(p -> System.out.println(p.getAge()));
        //按照person的 age进行排序
        //方法一
        personList.sort((o1, o2) -> o1.getAge().compareTo(o2.getAge())); //正序
        personList.sort((o1, o2) -> o2.getAge().compareTo(o1.getAge())); //倒序
        //方法二
        personList.sort(Comparator.comparing(Person::getAge)); // 正序
        personList.sort(Comparator.comparing(Person::getAge).reversed()); // 倒序
        //遍历
        personList.forEach(p -> System.out.println(p.getAge()));
 
        System.out.println("========================================");
 
        //获取年龄最大的Person
        Person maxAgePerson = personList.stream().max(Comparator.comparing(Person::getAge)).get();
        System.out.println(maxAgePerson.getAge());
 
        System.out.println("========================================");
 
        //获取年龄最小的Person
        Person minAgePerson = personList.stream().min(Comparator.comparing(Person::getAge)).get();
        System.out.println(minAgePerson.getAge());
 
        //过滤出年龄是20的person,想过滤出什么条件的都可以
        List<Person> personList1 = personList.stream().filter(person -> person.getAge() == 20).collect(Collectors.toList());
 
        //统计出年龄等于20的个数
        long count = personList.stream().filter(person -> person.getAge() == 20).count();
 
        //获得年龄的平均值
        double asDouble = personList.stream().mapToInt(person -> person.getAge()).average().getAsDouble();
 
        //获得年龄的求和
        int sum = personList.stream().mapToInt(person -> person.getAge()).sum();
 
    }
}

java8 List集合的排序,求和,取最大值,按照条件过滤的更多相关文章

  1. 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值

    不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...

  2. 在含有null值的复杂类的集合(Collection)中取最大值

    在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Clas ...

  3. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  4. 使用dataframe解决spark TopN问题:分组、排序、取TopN和join相关问题

    package com.profile.mainimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.fu ...

  5. Mysql分片后分页排序拉取数据的方法

    高并发大流量的互联网架构,一般通过服务层来访问数据库,随着数据量的增大,数据库需要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增加实例数的扩容目的. 一旦涉及 ...

  6. wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合

    wpf 导出Excel   1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...

  7. poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 30529   Accep ...

  8. java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值

    1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println(& ...

  9. hoj3152-Dice 等比数列求和取模

    http://acm.hit.edu.cn/hoj/problem/view?id=3152 Dice My Tags (Edit) Source : Time limit : sec Memory ...

随机推荐

  1. CSS函数大全

    CSS函数(方法)参考 CSS函数用作各种CSS属性的值. 函数 描述 attr() 返回所选元素的属性值 calc() 允许您执行计算以确定CSS属性值 cubic-bezier() 定义Cubic ...

  2. uni-app学习(六)好用的插件4

    1. uni-app学习(六)好用的插件4 1.1. QQ音乐模板 点击这里 示例 1.2. 画廊(ynGallery)组件 点击这里 看起来不错的 示例 1.3. 评价模板 学到个动画用法 imag ...

  3. 020.Dockerfile

    docker-cli读取Dockerfile,根据指令生成定制的docker镜像. Dockerfile的指令根据作用可以分为两种,构建指令和设置指令. 构建指令:用于构建image,其指定的操作不会 ...

  4. 解决Vue调用springboot接口403跨域问题

    最近在做一个前后端分离的项目, 前端用的是Vue后端使用的是springboot, 在项目整合的时候发现前端调用后端接口报错403跨域请求问题 前端跨域请求已解决, 那么问题就出在后端了, 找了一些资 ...

  5. dstat 系统监控命令

    tat 命令很强大,可以实时监控CPU,磁盘,网络,IO,内存等. yum install -y dstat 例: dstat  #查看全部监控信息 dstat -c  #查看cpu 使用情况

  6. 十五、Mysql字符集的那些事

    1. 设置默认字符集 #vim /etc/mysql/my.cnf .(5.5以后系统)如下修改: [client] default-character-set=utf8 [mysqld] defau ...

  7. 【java集合总结】-- 数组总结+自己封装数组类

    一.前言 本篇文章总结目前学习的有关数组方面的知识,首先总结一下数组相关的核心概念,然后在封装一个自己的泛型动态数组类(ava已经封装的有现成的,自己封装只是为了加深理解),最后再学习解析下Array ...

  8. Deep Q Network(DQN)原理解析

    1. 前言 在前面的章节中我们介绍了时序差分算法(TD)和Q-Learning,当状态和动作空间是离散且维数不高时可使用Q-Table储存每个状态动作对的Q值,而当状态和动作空间是高维连续时,使用Q- ...

  9. react知识点

    http://www.cocoachina.com/webapp/20150721/12692.html http://blog.csdn.net/slandove/article/details/5 ...

  10. pip安装指定版本的程序的命令

    pip安装指定版本的程序的命令 pip install -i https://pypi.douban.com/simple/ django==1.10.3 或者 pip install django= ...