java8使用filter()取出自己所需数据

目录
  • 使用filter()取出自己所需数据
  • java8 filter使用心得

使用filter()取出自己所需数据

java8的filter()方法是取出自己所需的数据,返回满足条件里的数据

person.java

package com.it.pojo; 
import java.util.Comparator;
import java.util.Objects;
 
@Data
@NoArgsConstructor
@ToString
public class Person {
    private String name;
    private Integer age;
}

test.java

package com.it.test;
import java.util.ArrayList;
import java.util.List;
import com.it.pojo.Person;
import java.util.Comparator;
import java.util.stream.Collectors;

public class StreamTest {
    public static void main(String[] args) {
        Person person1 = new Person();
        person1.setAge(21);
        person1.setName("21");

        Person person2 = new Person();
        person2.setAge(19);
        person2.setName("19");

        Person person3 = new Person();
        person3.setAge(19);
        person3.setName("20");

        Person person4 = new Person();
        person4.setAge(20);
        person4.setName("20");

        Person person5 = new Person();
        person5.setAge(19);
        person5.setName("18");

        List<Person> people = new ArrayList<>();
        people.add(person1);
        people.add(person2);
        people.add(person3);
        people.add(person4);
        people.add(person5);

        List<Person> collect1 = people.stream().filter((person) -> {
            return person.getName().equals("18");  //取姓名是18的Person数据
        }).collect(Collectors.toList());
        System.out.println(collect1);

         List<Person> collect2 = people.stream().filter((person) -> {
            return person.getAge().intValue()==19 && person.getName().equals("19");
        }).collect(Collectors.toList());
        System.out.println(collect2);

          List<Person> collect = people.stream().filter(person ->
            person.getName().equals("181")   //测试不满足条件的list集合会是什么样的
        ).collect(Collectors.toList()); 

        System.out.println(collect);    //集合size==0
        if(collect.size()==0){
            System.out.println("nihao");
        }
   }
}

结果

java8 filter使用心得

如果A集合元素数量10个,filter满足条件为5个,没有赋值新集合,那么A还是原来的10个,如果赋值给B集合,B集合为5个;

如果A集合10个,filter满足条件为5个,赋值给B集合,遍历B集合,对这5个元素进行了修改,那么A集合中的5个元素也会同时修改。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 使用JAVA8 filter对List多条件筛选的实现

    记录项目开发的过程中遇到的一些问题及解决方法,由于公司操作数据库都是统一使用工具生成的存在一些多表查询模糊查询,这些操作只能在集合方面下手了,比如发送邮件记录方面查询,对用户的名字及邮件模糊检索 年龄匹配查询. 1.创建实体类: 2.初始化数据 3.对数据进行模糊检索操作 4.多个年龄匹配 模糊检索代码 List<user> filter= users.stream() .filter(user -> user.getName().indexOf("月") >

  • java8从list集合中取出某一属性的值的集合案例

    我就废话不多说了,大家还是直接看代码吧~ List<Order> list = new ArrayList<User>(); Order o1 = new Order("1","MCS-2019-1123"); list.add(o1 ); Order o2= new Order("2","MCS-2019-1124"); list.add(o2); Order o3= new Order("

  • java8使用流的filter来筛选数据的实现

    本文主要介绍了java8使用流的filter来筛选数据的实现,分享给大家,具体如下: package chapter1; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import static java.util.stream.Collectors.groupingBy; public class stream { //比如说 你需要在一个列表

  • java8使用filter()取出自己所需数据

    目录 使用filter()取出自己所需数据 java8 filter使用心得 使用filter()取出自己所需数据 java8的filter()方法是取出自己所需的数据,返回满足条件里的数据 person.java package com.it.pojo;  import java.util.Comparator; import java.util.Objects;   @Data @NoArgsConstructor @ToString public class Person {     pr

  • SpringCloud Gateway自定义filter获取body中的数据为空的问题

    最近在使用SpringCloud Gateway进行网关的开发,我使用的版本是:SpringBoot的2.3.4.RELEASE+SpringCloud的Hoxton.SR8,在自定义过滤器时需要获取ServerHttpRequest中body的数据,发现一直无法获取到数据,经过各种百度.谷歌,再加上自己的实践,终于找到解决方案: 1.首先创建一个全局过滤器把body中的数据缓存起来 package com.cloudpath.gateway.portal.filter; import lomb

  • Java 遍历取出Map集合key-value数据的4种方法

    将map集合存数据与取出数据全部放在一个类MapTest中,方便阅读与查看 随便创建一个包,在包中新建一个class文件,(也可以不建包,直接新建一个class文件) 新建class文件MapTest.java,代码如下: import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class

  • 在C#中如何使用正式表达式获取匹配所需数据

    需求:获取一串字符串中,正则匹配出需要的数据. 例如以下字符串: string temp ="ErrorCode:-1,Message:{"UserId" : "1000","userName" : "ZhangSan"}"; 我需要获得"-1"和"{"UserId" : "1000","userName" : &qu

  • Java将CSV的数据发送到kafka的示例

    为什么将CSV的数据发到kafka flink做流式计算时,选用kafka消息作为数据源是常用手段,因此在学习和开发flink过程中,也会将数据集文件中的记录发送到kafka,来模拟不间断数据: 整个流程如下: 您可能会觉得这样做多此一举:flink直接读取CSV不就行了吗?这样做的原因如下: 首先,这是学习和开发时的做法,数据集是CSV文件,而生产环境的实时数据却是kafka数据源: 其次,Java应用中可以加入一些特殊逻辑,例如数据处理,汇总统计(用来和flink结果对比验证): 另外,如果

  • 详解AngularJS中的filter过滤器用法

    系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter.如果对smarty比较熟悉的话,学习angularjs会比较容易一点.这篇简单说一下angularjs的filter功能,angularjs的filter功能可分为二种,一种是内置的过滤器,一种是自定义的. 一,内置的过滤器 1,uppercase,lowercase大小转换 {{ "lower cap string" | uppercase }} //结果:

  • 走进AngularJs之过滤器(filter)详解

    过滤器(filter)正如其名,作用就是接收一个输入,通过某个规则进行处理,然后返回处理后的结果.主要用在数据的格式化上,例如获取一个数组中的子集,对数组中的元素进行排序等.ng内置了一些过滤器,它们是:currency(货币).date(日期).filter(子串匹配).json(格式化json对象).limitTo(限制个数).lowercase(小写).uppercase(大写).number(数字).orderBy(排序).总共九种.除此之外还可以自定义过滤器,这个就强大了,可以满足任何

  • AngularJS过滤器filter用法总结

    本文实例总结了AngularJS过滤器filter用法.分享给大家供大家参考,具体如下: 引言 filter过滤器对于我们来说并不陌生,他和我们现实生活中的过滤器的意思差不多,它的作用就是接收一个输入的值,然后按照某个规则进行处理然后输出最后的结果,例如我们输入一个数字,然后我们需要得到货币形式的数据,这样我们就可以利用过滤器来实现,AngularJS中的过滤器是非常简单的,分为内置和自定义两种,下面小编就简单的给大家介绍一些. 内置过滤器 ng内置了一些过滤器,它们是:currency(货币)

  • 大数据量高并发的数据库优化详解

    如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 一.数据库结构的设计 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

  • mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    本文实例讲述了mysql优化小技巧之去除重复项实现方法.分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候.毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了. 首先按照常规首段,使用having函数检查重复项,完事一个一个的删除.不要问我having检测重复项的sql咋写,你懂得哈...这个在只有几条重复的时候还可以.要是几千上万条不同数据重复,那咋办... 完事呢,咱就考虑了,用having函数查询的时候,原始sql如下: select `n

随机推荐