写在前面

使用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对象(查找符合条件的对象集合)相关推荐

  1. JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象

    转载自:https://www.cnblogs.com/lindsayYang/p/9843599.html JAVA 8 lambda 表达式实现按某个属性值查找对象集合中符合条件的对象 当前的需求 ...

  2. java stream findlast_恕我直言你可能真的不会java第9篇-Stream元素的匹配与查找

    在我们对数组或者集合类进行操作的时候,经常会遇到这样的需求,比如: 是否包含某一个"匹配规则"的元素 是否所有的元素都符合某一个"匹配规则" 是否所有元素都不符 ...

  3. Stream filter过滤案例

    package com.gblfy.gxts;import com.google.common.collect.Lists; import lombok.AllArgsConstructor; imp ...

  4. java outputstream api,Java8 stream API以及常用方法

    Java8引入了全新的Stream API,Stream API为Java编程提供了丰富的函数式编程操作. Stream API与Java提供的其他集合类型有本质的区别,具体如下: java.io的I ...

  5. Java8 stream filter map

    java8 中的stream filter map 组合使用能很好的代替for 循环去处理逻辑,而且代码简单明了 public static void main(String[] args) {Lis ...

  6. 数组的filter过滤方法将对象数组内容改变——js基础积累——犯傻记录

    最近在写后台管理系统,遇到一个多种类型报价的功能,内容不难,但是需要各种判断加处理.有时候就会不小心出现犯傻的情况... 1.场景 需要在一个对象数组中过滤出符合条件的对象. let arr = [{ ...

  7. stream().filter匹配过滤总结

    文章目录 前言 一.简单匹配过滤 二.对象匹配过滤 三.自定义匹配过滤 前言 Java集合Stream 出自 Java8. 可谓是加量不加价,丰富了使用场景,还精简了代码.虽然牺牲了一点可读性,但总体 ...

  8. java stream filter map collector使用

    @Testpublic void demo1(){ArrayList<Integer> list = new ArrayList<>();for (int i = 0; i & ...

  9. lambda表达式 java求和_java 8 stream、lambda表达式对list操作分组、过滤、求和、最值、排序、去重...

    1.分组 通过groupingBy分组指定字段 list.stream().collect(Collectors.groupingBy(User::getSex)); 2.过滤 通过filter方法过 ...

  10. Java8的 stream对list数据去重,使用filter()过滤列表,list转map,joining使用,统计分组合并

    使用 Java8的 stream对list数据去重,使用filter()过滤列表,list转map 1.去除List中重复的String List unique = list.stream().dis ...

最新文章

  1. 致那个我爱着且没在一起的人[转上官婉儿]
  2. panel内嵌程序窗体
  3. 你是AI王者吗?2018人工智能专业期末考试,66666奖学金等你来
  4. Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
  5. wordList04
  6. “智慧停车+智慧交通”提高市民出行效率和体验
  7. Shell-find+exec
  8. java 遍历所有内部类_JAVA-内部类
  9. 隐马尔可夫模型python_机器学习中的隐马尔科夫模型(HMM)详解
  10. SQL 常用语句INSERT INTO,UPDATE,DELETE
  11. Foobar2000是一款完全可定制的音乐播放器
  12. SAP ABAP 培训测试 试卷 答案
  13. iphonex蓝牙打不开转圈_iphonex蓝牙一直在转圈
  14. 树莓派Pico开发板的C/C++开发环境搭建(VSCode+PlatformIO)
  15. c语言手机通讯录用动态链表,通讯录用链表来连接怎么弄????
  16. 武汉大学计算机学院李明,第一届CSIG全国SLAM技术论坛成功举办
  17. 10款idea神级插件,生产力必备神器!
  18. 5g理论速度_5g速度是4g多少倍
  19. Using temporary与Using filesort
  20. ecmall mysql版本_ECMall的MySQL数据调用的简单方法

热门文章

  1. Git hub加载慢?下载慢?浏览慢?几个小技巧让你一键起飞!
  2. cocos2d-x 之TableView
  3. cocos2d-x 之 简单数据存储——Userdefault
  4. 杭电oj2035c语言答案,小白详细讲解快速幂--杭电oj2035-A^B
  5. 安卓8.1放弃Java_升级到Android 8.1后,startForeground失败
  6. hashset去重原理_快手:Druid精确去重的设计与实现
  7. vue3 main.js引入 axios_Vue3.0新特性探索
  8. web安全设置(含IIS,php,ASP.NET)与目录权限设置
  9. PHP实现限制域名从而保护源代码不被拷贝
  10. PMBOK--项目整合管理