java list filter_Java8使用stream().filter()过滤List对象(查找符合条件的对象集合)
写在前面
使用Java8或更高版本,使用stream().filter()来过滤一个List对象,查找符合条件的对象集合。
List对象类
public class StudentInfo {
private String name;
private String gender;
private int age;
private int height;
public StudentInfo setName(String mName) {
name = mName;
return this;
}
public StudentInfo setGender(String mGender) {
gender = mGender;
return this;
}
public StudentInfo setAge(int mAge) {
age = mAge;
return this;
}
public StudentInfo setHeight(int mHeight) {
height = mHeight;
return this;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
public int getHeight() {
return height;
}
@Override
public String toString() {
return "StudentInfo{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", height=" + height +
'}';
}
}
如上就是List对象类了。这里稍微的使用了一点链式编程。
测试数据
public static void main(String[] args) {
List lsStudentData = new ArrayList<>();
//数据添加
for (int i = 0; i < 30; i++) {
StudentInfo student = new StudentInfo();
student.setName("GT Name")
.setAge(i)
.setGender(i % 2 != 0 ? "Male" : "Female")
.setHeight(180);
lsStudentData.add(student);
}
//循环遍历数据
for (StudentInfo studentItem : lsStudentData) {
System.out.println(studentItem.toString());
}
}
使用filter()过滤List
过滤要求,我们需要寻找年龄大于等于15的年轻人。
List lsYoungStudent = lsStudentData.stream().filter(a -> a.getAge() >= 15).collect(Collectors.toList());
for (StudentInfo studentItem : lsYoungStudent) {
System.out.println(studentItem.toString());
}
进行年龄大于等于15的过滤操作。
StudentInfo{name='GT Name', gender='Female', age=0, height=180}
StudentInfo{name='GT Name', gender='Male', age=1, height=180}
StudentInfo{name='GT Name', gender='Female', age=2, height=180}
StudentInfo{name='GT Name', gender='Male', age=3, height=180}
StudentInfo{name='GT Name', gender='Female', age=4, height=180}
StudentInfo{name='GT Name', gender='Male', age=5, height=180}
StudentInfo{name='GT Name', gender='Female', age=6, height=180}
StudentInfo{name='GT Name', gender='Male', age=7, height=180}
StudentInfo{name='GT Name', gender='Female', age=8, height=180}
StudentInfo{name='GT Name', gender='Male', age=9, height=180}
StudentInfo{name='GT Name', gender='Female', age=10, height=180}
StudentInfo{name='GT Name', gender='Male', age=11, height=180}
StudentInfo{name='GT Name', gender='Female', age=12, height=180}
StudentInfo{name='GT Name', gender='Male', age=13, height=180}
StudentInfo{name='GT Name', gender='Female', age=14, height=180}
StudentInfo{name='GT Name', gender='Male', age=15, height=180}
StudentInfo{name='GT Name', gender='Female', age=16, height=180}
StudentInfo{name='GT Name', gender='Male', age=17, height=180}
StudentInfo{name='GT Name', gender='Female', age=18, height=180}
StudentInfo{name='GT Name', gender='Male', age=19, height=180}
StudentInfo{name='GT Name', gender='Female', age=20, height=180}
StudentInfo{name='GT Name', gender='Male', age=21, height=180}
StudentInfo{name='GT Name', gender='Female', age=22, height=180}
StudentInfo{name='GT Name', gender='Male', age=23, height=180}
StudentInfo{name='GT Name', gender='Female', age=24, height=180}
StudentInfo{name='GT Name', gender='Male', age=25, height=180}
StudentInfo{name='GT Name', gender='Female', age=26, height=180}
StudentInfo{name='GT Name', gender='Male', age=27, height=180}
StudentInfo{name='GT Name', gender='Female', age=28, height=180}
StudentInfo{name='GT Name', gender='Male', age=29, height=180}
过滤后数据+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
StudentInfo{name='GT Name', gender='Male', age=15, height=180}
StudentInfo{name='GT Name', gender='Female', age=16, height=180}
StudentInfo{name='GT Name', gender='Male', age=17, height=180}
StudentInfo{name='GT Name', gender='Female', age=18, height=180}
StudentInfo{name='GT Name', gender='Male', age=19, height=180}
StudentInfo{name='GT Name', gender='Female', age=20, height=180}
StudentInfo{name='GT Name', gender='Male', age=21, height=180}
StudentInfo{name='GT Name', gender='Female', age=22, height=180}
StudentInfo{name='GT Name', gender='Male', age=23, height=180}
StudentInfo{name='GT Name', gender='Female', age=24, height=180}
StudentInfo{name='GT Name', gender='Male', age=25, height=180}
StudentInfo{name='GT Name', gender='Female', age=26, height=180}
StudentInfo{name='GT Name', gender='Male', age=27, height=180}
StudentInfo{name='GT Name', gender='Female', age=28, height=180}
StudentInfo{name='GT Name', gender='Male', age=29, height=180}
可以看到我们的过滤条件年龄大于大于15的过滤操作是有效的。
java list filter_Java8使用stream().filter()过滤List对象(查找符合条件的对象集合)相关推荐
- JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象
转载自:https://www.cnblogs.com/lindsayYang/p/9843599.html JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求 ...
- java stream findlast_恕我直言你可能真的不会java第9篇-Stream元素的匹配与查找
在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个"匹配规则"的元素 是否所有的元素都符合某一个"匹配规则" 是否所有元素都不符 ...
- Stream filter过滤案例
package com.gblfy.gxts;import com.google.common.collect.Lists; import lombok.AllArgsConstructor; imp ...
- java outputstream api,Java8 stream API以及常用方法
Java8引入了全新的Stream API,Stream API为Java编程提供了丰富的函数式编程操作. Stream API与Java提供的其他集合类型有本质的区别,具体如下: java.io的I ...
- Java8 stream filter map
java8 中的stream filter map 组合使用能很好的代替for 循环去处理逻辑,而且代码简单明了 public static void main(String[] args) {Lis ...
- 数组的filter过滤方法将对象数组内容改变——js基础积累——犯傻记录
最近在写后台管理系统,遇到一个多种类型报价的功能,内容不难,但是需要各种判断加处理.有时候就会不小心出现犯傻的情况... 1.场景 需要在一个对象数组中过滤出符合条件的对象. let arr = [{ ...
- stream().filter匹配过滤总结
文章目录 前言 一.简单匹配过滤 二.对象匹配过滤 三.自定义匹配过滤 前言 Java集合Stream 出自 Java8. 可谓是加量不加价,丰富了使用场景,还精简了代码.虽然牺牲了一点可读性,但总体 ...
- java stream filter map collector使用
@Testpublic void demo1(){ArrayList<Integer> list = new ArrayList<>();for (int i = 0; i & ...
- lambda表达式 java求和_java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重...
1.分组 通过groupingBy分组指定字段 list.stream().collect(Collectors.groupingBy(User::getSex)); 2.过滤 通过filter方法过 ...
- Java8的 stream对list数据去重,使用filter()过滤列表,list转map,joining使用,统计分组合并
使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map 1.去除List中重复的String List unique = list.stream().dis ...
最新文章
- 致那个我爱着且没在一起的人[转上官婉儿]
- panel内嵌程序窗体
- 你是AI王者吗?2018人工智能专业期末考试,66666奖学金等你来
- Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
- wordList04
- “智慧停车+智慧交通”提高市民出行效率和体验
- Shell-find+exec
- java 遍历所有内部类_JAVA-内部类
- 隐马尔可夫模型python_机器学习中的隐马尔科夫模型(HMM)详解
- SQL 常用语句INSERT INTO,UPDATE,DELETE
- Foobar2000是一款完全可定制的音乐播放器
- SAP ABAP 培训测试 试卷 答案
- iphonex蓝牙打不开转圈_iphonex蓝牙一直在转圈
- 树莓派Pico开发板的C/C++开发环境搭建(VSCode+PlatformIO)
- c语言手机通讯录用动态链表,通讯录用链表来连接怎么弄????
- 武汉大学计算机学院李明,第一届CSIG全国SLAM技术论坛成功举办
- 10款idea神级插件,生产力必备神器!
- 5g理论速度_5g速度是4g多少倍
- Using temporary与Using filesort
- ecmall mysql版本_ECMall的MySQL数据调用的简单方法
热门文章
- Git hub加载慢?下载慢?浏览慢?几个小技巧让你一键起飞!
- cocos2d-x 之TableView
- cocos2d-x 之 简单数据存储——Userdefault
- 杭电oj2035c语言答案,小白详细讲解快速幂--杭电oj2035-A^B
- 安卓8.1放弃Java_升级到Android 8.1后,startForeground失败
- hashset去重原理_快手:Druid精确去重的设计与实现
- vue3 main.js引入 axios_Vue3.0新特性探索
- web安全设置(含IIS,php,ASP.NET)与目录权限设置
- PHP实现限制域名从而保护源代码不被拷贝
- PMBOK--项目整合管理