Java8新特性Stream的应用——在一个对象list中根据对象的某些属性进行筛选,得到一个新的list

分类:计算机 | Java | 集合 293
更新:2021-03-20 23:21:04
编辑

说明

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。

Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。

Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。

这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。

元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。

示例应用

有一个对象集合List,对象的属性有name和age,如果我们想得到名字中包含“超”的对象集合,那么代码如下:

List<Person> listAllPerson;
...
List<Person> listPersonByName=listAllPerson.stream().filter(a->a.getName().contains("超")).collect(Collectors.toList());

如果要获取名字中包含“超”而且年龄是24的所有对象集合,那么代码如下:

List<Person> listAllPerson;
...
List<Person> listPersonByNameAndAge=listAllPerson.stream().filter(a->a.getName().contains("超")&& a.getAge()==24).collect(Collectors.toList());

参考资料

Java 8 Stream