Java Reference
In-Depth Information
Chapter 3. Streams
The language changes introduced in Java 8 are intended to help us write better code. New
core libraries are a key part of that, so in this chapter we start to look at them. The most im-
portant core library changes are focused around the Collections API and its new addition:
streams
. Streams allow us to write collections-processing code at a higher level of abstrac-
tion.
The
Stream
interface contains a series of functions that we'll explore throughout this
chapter, each of which corresponds to a common operation that you might perform on a
Col-
lection
.
From External Iteration to Internal Iteration
TIP
A lot of the examples in this chapter and the rest of the topic refer to domain classes,
which were introduced in
Example Domain
.
A common pattern for Java developers when working with collections is to iterate over a col-
lection, operating on each element in turn. For example, if we wanted to add up the number
of musicians who are from London, we would write the code in
Example 3-1
.
Example 3-1. Counting London-based artists using a for loop
int
int
count
=
0
;
for
for
(
Artist artist
:
allArtists
) {
iif
(
artist
.
isFrom
(
"London"
)) {
count
++;
}
}