区别 stream().filter和stream().map,简单的不要不要的
Posted 沛沛老爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区别 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().map,简单的不要不要的的主要内容,如果未能解决你的问题,请参考以下文章
ffmpeg decode, encode, transcode, mux, demux, stream, filter的区别