基于java8的函数式编程系列-流

函数式编程系列

Posted by Zhan on May 20, 2021

Java8函数式(二)-流

​ java8中对核心类库的改进,包括集合类api和新引入的流stream,流使程序员站在更高的抽象层次上对集合进行操作,接下来介绍stream类中的一组方法,每个方法都对应集合上的一种操作;

从外部迭代到内部迭代

​ 处理集合类时,通用的模式是在集合上进行迭代,然后处理返回每一个元素,本系列以第一章中的领域模型作为例子进行代码说明:

int count = 0;
for (Artist artist : alArtist) {
    if (artist.isFrom("London")) {
        count++;
    }
}

for循环执行原理,使用iterator产生新的iterator对象,进而控制整个迭代过程,此为外部迭代,迭代过程通过显示调用iterator独享的hasnext,next完成迭代;

int count = 0;
Iterable<Artist> iterator = allArtists.iterator();
while (iterator.hashNext()) {
    Artist artist = iterator.next();
    if(artist.isFrom("London")) {
        count++;
    }
}