java8 List集合的排序,求和,取最大值,按照条件过滤
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集合的排序,求和,取最大值,按照条件过滤的更多相关文章
- 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值
不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...
- 在含有null值的复杂类的集合(Collection)中取最大值
在日常编程中,经常遇到要在一组复杂类的集合(Collection)中做比较.取最大值或最小值. 举个最简单的例子,我们要在一个如下结构的集合中选取包含最大值的元素: public class Clas ...
- [sql server、oracle] 分组取最大值最小值常用sql
sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb( ...
- 使用dataframe解决spark TopN问题:分组、排序、取TopN和join相关问题
package com.profile.mainimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.fu ...
- Mysql分片后分页排序拉取数据的方法
高并发大流量的互联网架构,一般通过服务层来访问数据库,随着数据量的增大,数据库需要进行水平切分,分库后将数据分布到不同的数据库实例(甚至物理机器)上,以达到降低数据量,增加实例数的扩容目的. 一旦涉及 ...
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
wpf 导出Excel 1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...
- poj 3349:Snowflake Snow Snowflakes(哈希查找,求和取余法+拉链法)
Snowflake Snow Snowflakes Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30529 Accep ...
- java练习题:解一元二次方程、判断闰年、判断标准身材、三个数取最大值
1.解一元二次方程 注:求根公式为(-b+根号德尔塔)/2a,(-b-根号德尔塔)/2a Scanner sc=new Scanner(System.in); System.out.println(& ...
- hoj3152-Dice 等比数列求和取模
http://acm.hit.edu.cn/hoj/problem/view?id=3152 Dice My Tags (Edit) Source : Time limit : sec Memory ...
随机推荐
- JavaScript Location 对象用法
Location 对象 Location对象包含有关当前URL的信息.location对象是window对象的一部分,可以通过window.location属性访问. 注意:没有适用于location ...
- LeetCode学习_day1:原地算法
原地算法:是一种使用小的,固定数量的额外之空间来转换资料的算法.当算法执行时,输入的资料通常会被要输出的部份覆盖掉. 范例:冒泡排序.选择排序.插入排序.希尔排序 (1)冒泡排序: 冒泡排序算法的原理 ...
- 13 个 NPM 快速开发技巧
摘要: 玩转npm. 作者:前端小智 原文:13 个 npm 快速开发技巧 Fundebug经授权转载,版权归原作者所有. 为了保证的可读性,本文采用意译而非直译. 每天,数以百万计的开发人员使用 n ...
- Windows下面startup.bat启动Tomcat偶发死锁问题
Windows下面startup.bat启动Tomcat时,因为日志都打印到了cmd里面,存在偶发卡死Tomcat的问题,该问题确认是Windows系统的问题,而且一直没有解决.解决的办法是把日志重定 ...
- HTTPS中的加密验证部分理论
为了加深自己对于https加密这一块的映象,决定写出来试试 就是在http层下面加了一个ssl层, 服务器将自己的公钥发送给证书机构,申请证书,证书机构首先会验证个服务器是否合法,线上或者线下,然后用 ...
- 005-OpenStack-网络服务
OpenStack-网络服务 [基于此文章的环境]点我快速打开文章 1.控制节点(controller) 1.1 创库授权 neutron mysql CREATE DATABASE neutron; ...
- 03导航链接的制作(wx:for循环)和小程序警告request fail url not in domain list
06==>导航链接的制作 <!-- 导航链接 --> <navigator url="../list/list" hover-class="nav ...
- JS高阶---继承模式(原型链继承)
[前言] 之前已经介绍了对象创建的五种模式,下面看下继承模式 本节介绍下<原型链继承> [主体] 验证如下: 关键点: .
- 跟着ALEX 学python day4集合 装饰器 生成器 迭代器 json序列化
文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 装饰器 : 定义: 装饰器 本质是函数,功能是装饰其他函数,就是为其他函数添加附加功能. 原则: 1.不能修改被装 ...
- 201871010107-公海瑜《面向对象程序设计(java)》第十四周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第十四周学习总结 项目 内容 这个作业属于 ...