stream.filter 两个条件 怎么实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stream.filter 两个条件 怎么实现相关的知识,希望对你有一定的参考价值。

参考技术A 这样行不行
Me.Filter = "status=1 And Yrend-Date()<30"

区别 stream().filter和stream().map,简单的不要不要的

 用到stream特性的情况。一般是在List的操作上。

用List的操作,一般都是获取子集(匹配)或者获取其中某些制定项的操作会比较多。

例如从一个List<T>中获取满足条件的子集。一般我们都会用 stream().filter和stream().map来处理。

这两个用的比较多,有些同学还会遇到用着用着就迷糊了:

到底什么时候用什么?这两个又有什么区别呢?

下面我们简单来上个代码。

1、先上个砧板上的肉肉(List):

@Data  //Lombok
public Class person{

   private Integer age;

   private String name;


}

/*
* 填充数据省略?
*/
public Class personTest{

    public static void main(String[] args){
        List<Person> persons = new ArraryList<>();
        
        for(int i =0 ;i<5;i++){
            Person person = new Person();
            person.setAge(i);
            person.setname("姓名_"+i.toString());
        }
    }
}

2、测试下filter

private void testFilter(List<Person> persons){
    
    List<Person> childPersons = persons.stream().filter(e-e>getAge.equals(1)).collect(Collectors.toList());
    
}

3、测试下map:

private void testMap(List<Person> persons){
    
    List<Age> childPersons = persons.stream().filter(Person::getAge).collect(Collectors.toList());
    
}

其实在上面的示例中,大家就可以很清楚的观察到Filter和Map的区别了。

一个是类型不变,一个是改变了类型。

以上是关于stream.filter 两个条件 怎么实现的主要内容,如果未能解决你的问题,请参考以下文章

区别 stream().filter和stream().map,简单的不要不要的

Java8使用stream().filter()过滤List对象(查找符合条件的对象集合)

stream filter 增强判断 校验是否有不符合条件的数据

过滤具有内部列表条件的列表

Java8 新特性中的Stream,如何按照条件替换原来stream中的数据?

java8 中stream filter 如果属性为空怎么判断