import java.util.*;
import java.util.stream.Collectors;
public class Test {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
Student student1 = new Student();student1.setAge("12");student1.setSex(0);
Student student2 = new Student();student2.setAge("13");student2.setSex(2);
Student student3 = new Student();student3.setAge("11");student3.setSex(1);
Student student4 = new Student();student4.setAge("18");student4.setSex(1);
Student student5 = new Student();student5.setAge("18");student5.setSex(0);
Student student6 = new Student();student6.setAge("18");student6.setSex(2);
Student student7 = new Student();student7.setAge("18");student7.setSex(2);
list.add(student1);
list.add(student2);
list.add(student3);
list.add(student4);
list.add(student5);
list.add(student6);
list.add(student7);
List<Demo> demos = new ArrayList<Demo>();
// 原始数据
System.out.println("原始数据 组装list<demo>*******************");
demos = list.stream().map(student -> new Demo(student.getAge(), student.getSex())).collect(Collectors.toList());
demos.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 只取sex为0
System.out.println("只取sex为0****************");
List<Demo> demorm = demos.stream().filter(demo -> demo.getSex() == 0).distinct().collect(Collectors.toList());
demorm.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 筛选年龄大于12岁
System.out.println("筛选年龄大于12岁的*************");
List<Demo> demoFilter = demos.stream().filter(demo -> Integer.valueOf(demo.getAge()) > 12).collect(Collectors.toList());
demoFilter.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 排序
System.out.println("排序******************");
List<Demo> demoSort = demos.stream().sorted((s1, s2) -> s1.getAge().compareTo(s2.getAge())).collect(Collectors.toList());
demoSort.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 倒序
System.out.println("倒序****************");
ArrayList<Demo> demoArray = (ArrayList<Demo>) demos;
Comparator<Demo> comparator = (h1, h2) -> h1.getAge().compareTo(h2.getAge());
demos.sort(comparator.reversed());
//or
demos.sort(Comparator.comparing(Demo::getAge).reversed());
demos.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 多条件正序
System.out.println("多条件排序正序****************");
demoArray.sort(Comparator.comparing(Demo::getSex).thenComparing(Demo::getAge));
demoArray.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 多条件倒序
System.out.println("多条件排序倒序 sex 倒序****************");
demoArray.sort(Comparator.comparing(Demo::getSex).reversed().thenComparing(Demo::getAge));
demoArray.forEach(demo -> {
System.out.println("年龄 " + demo.getAge() + " 性别 " + demo.getSex() + ",");
});
// 按照年龄分组
System.out.println("根据age分组结果为Map****************");
Map<String, List<Demo>> demoOder = demos.stream().collect(Collectors.groupingBy(Demo::getAge));
System.out.println(demoOder);
}
}
class Demo {
private String name;
private Integer sex;
private String age;
public Demo(String age, Integer sex) {
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
class Student {
private String age;
private Integer sex;
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Integer getSex() {
return sex;
}
public void setSex(Integer sex) {
this.sex = sex;
}
}
相关推荐
手把手教你用Kokoro-82M-v1.1-zh搭建本地TTS服务(含WebSocket接口)
本文详细介绍了如何使用Kokoro-82M-v1.1-zh模型搭建本地TTS服务,包括环境配置、模型部署、WebSocket接口实现及性能优化。通过实战指南,开发者可以快速掌握本地部署TTS系统的关键技术,提升语音交互应用的开发效率。
java8 Stream对List中对象按照某个属性进行分组,然后指定属性进行聚合
java8数据集合分组,属性聚合
静态时序分析(STA)_深入解析Data to Data Checks的零周期挑战
本文深入解析了静态时序分析(STA)中Data to Data Checks的核心概念与零周期挑战。重点探讨了当Setup要求值超过时钟周期时,工具如何调整发射沿,并导致Hold检查的发射与捕获沿“分裂”这一反直觉现象。文章通过案例详细解读了时序报告,并提供了通过调整约束或接受多周期保持两种策略来应对这一挑战,帮助工程师正确理解和处理此类复杂时序检查。
【Java 8 操作list各种场景合集--提高技能和提高逼格】list 取值,分组,统计,list<A对象> 转Map<key,B对象>
Java 8 工作中常用到的 对list的基本应用 group by 分组 max public void test(){ List<Student>inquiryFlowSheetDistributor=new ArrayList<Student>(); /** 根据id分组 **/ Map<String, List<Student>> customTagsMap = (toList(inquiryFlowShe....
Argoverse数据集可视化/Argoverse-api
argoverse可视化,argoverse-api配制方法
【黑马-产品经理入门基础课笔记】01.认识产品经理
问题定义 ==> 可行性研究 ==> 需求分析。
Java8 利用新特性进行分组求和、分组计数、分组归约(聚合)
Java8 利用新特性进行分组求和、分组计数、分组归约(聚合)
Wireshark抓包实战:5个CTF比赛中高频出现的流量分析技巧(附真实案例)
本文分享了Wireshark在CTF比赛和实战渗透中的五个核心流量分析技巧。内容涵盖从宏观统计概览锁定可疑目标、深度解析ICMP与HTTP等协议、追踪重组完整会话流,到利用字符串搜索和命令行工具进行自动化分析。掌握这些高阶技巧能显著提升分析海量网络流量的效率与精准度。
java 8 流操作对象中某列进行聚合
java 8 流操作 ,对对象中数值字段进行聚合计算
22、计算智能在自闭症检测与管理中的应用
本文探讨了计算智能在自闭症谱系障碍(ASD)检测与管理中的应用。在检测方面,结合可穿戴设备、传感技术与多模态数据(如眼动追踪、问卷、神经成像等),利用机器学习和深度学习算法提升诊断准确性,并介绍了多种公开数据集及研究方法。在管理方面,通过生理指标(HRV、GSR、呼吸频率)监测情绪状态,结合智能可穿戴设备与支持性应用平台(如LetMeTalk、MITA、Rethink Ed等),实现对ASD患者的实时干预与个性化支持。文章还展示了多模态筛查与管理流程的系统架构,强调未来技术整合与个性化服务的发展方向。
WPF+MVVM案例实战(二十三)- 阴影效果详解
通过附加属性实现阴影效果,通过改变不同的阴影属性值达到不同阴影效果
JDK8-Lambda表达式-对List的简化操作
mybatis-plus 作为 mybatis 的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直被大家所诟病。条件查询,可以查询主表以及参与连接的所有表的字段,全部调用mp原生的方法,正常使用没有sql注入风险。select() 查询指定的字段,支持可变参数,同一个select只能查询相同表的字段。默认主表别名是t,其他的表别名以先后调用的顺序使用t1,t2,t3…第二个参数: 连表的ON字段,这个属性必须是第一个参数实体类的属性。leftJoin() 参数说明。
地图自定义编码CSV转换成ini文件
创 建 schema.ini 文件:有时,当您尝试使用 .csv 文件将自定义地理信息导入 Tableau 时,您可能会看到“无法使用.csv,因为它不包含唯一列”错误消息。这是因为您的 .csv 文件可能包含数值数据,例如数值邮政编码。对于新的地理角色,Tableau 将只接受文本字段。但是,您可以创建一个 schema.ini 文件,以指示 Tableau 应将您要导入的数值字段视为文本字段。...
java8 list to set_JDK8对List的简化操作-Lambda表达式
import java.util.*;import java.util.stream.Collectors;public class Test {public static void main(String[] args) {List list = new ArrayList<>();Student student1 = new Student();student1.setAge("1...
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
BPM不是流程图工具,而是业务操作系统
BPM(业务流程管理)是一种将业务逻辑转化为可执行、可监控、可进化的数字化运行机制的核心技术。其原理在于通过流程编排、规则引擎与多系统数据穿透,实现从业务语言到系统指令的自动翻译。技术价值体现在打破部门壁垒、缩短决策链路、提升异常响应实时性,广泛应用于制造业订单交付、金融信贷审批、医疗随访等强协同场景。尤其在国产BPM平台如F2BPM推动下,低代码配置、自然语言规则构建、组织快照等能力显著降低落地门槛,让业务人员真正掌握流程优化主动权。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
JDK8 lambda表达式对集合List的操作
前言: JDK8的lambda表达式提供了一些方便结合List的流操作方法,主包括分组、过滤、求和、最值、排序、去重、新集合。与之前的传统写法JDK6对比,用更少的代码实现一样的功能,简约美。 1.分组 通过groupingBy可以分组指定字段 //jdk分组 Map<String, List<User>> groupBySex = userList.stream().co...
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
JDK8新特性之Lambda表达式
在JDK8之前,Java是不支持函数式编程的,所谓的函数编程将一个函数作为一个参数进行传递。 面向对象编程是对数据的抽象(即对POJO的抽象),而函数式编程则是对行为的抽象(将行为作为一个参数传递)。 废话少说代码附上 package com.lsy.lambda; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * @a
Java8使用lambda遍历集合创建线程
@Test public void testMap() { //定义一个map Map<String, Integer> map = new HashMap<>(); map.put("阿离", 13888); map.put("韩信", 18888); map.put("李白", 88...
List常用操作比for循环更优雅的写法
引言 使用JDK1.8之后,大部分list的操作都可以使用lamada表达式去写,可以让代码更简洁,开发更迅速。以下是我在工作中常用的lamada表达式对list的常用操作,喜欢建议收藏。 以用户表为例,用户实体代码如下: public class User { private Integer id; //id private String name; //姓名 private Integer age; //年龄 private Integer departId;
Java中的集合转换(lambda表达式)
在Java应用中进行集合对象间的转换是非常常见的事情,有时候在处理某些任务时选择一种好的数据结构往往会起到事半功倍的作用,因此熟悉每种数据结构并知道其特点对于程序员来说是非常重要的,而只知道这些是不够的
List 移除指定元素
list 删除指定元素的常用方式
JAVA之Lambda表达式详解
文章目录一、基本概念1.背景2.Lambda表达式的语法3.函数式接口二、Lambda表达式的基本使用1.无返回值函数式接口2.有返回值函数接口3.语法精简三、变量捕获1.匿名内部类2.Lambda的变量捕获四、Lambda在集合当中的使用1.List和forEach、sort2.HashMap和forEach总结 一、基本概念 1.背景 Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和
jdk8 lambda表达式list操作分组、过滤、求和、最值、排序、去重
java8的lambda表达式提供了一些方便list操作的方法,主要涵盖分组、过滤、求...
183



被折叠的 条评论
为什么被折叠?



