Java Reference
In-Depth Information
When you compare this version to the original pseudo-code in the first version, you notice that
element
was written in the form of a variable declaration as
ElementType element
. This sec-
tion does indeed declare a variable that is then used for each collection element in turn. Before
discussing further, let us look at an example of real Java code.
Code 4.3 shows an implementation of a
listAllFiles
method that lists all file names cur-
rently in the organizer's
ArrayList
that use such a for-each loop.
Code 4.3
Using a for-each loop
to list the file names
/**
* Show a list of all the files in the collection.
*/
public
void
listAllFiles()
{
for
(String filename : files) {
System.out.println(filename);
}
}
In this for-each loop, the loop body—consisting of a single
System.out.println
statement —is
executed repeatedly, once for each element in the
files ArrayList
. If, for example, there were
four strings in the list, the
println
statement would be executed four times.
Each time before the statement is executed, the variable
filename
is set to hold one of the list
elements: first the one at index
0
, then the one at index
1
, and so on. Thus, each element in the
list gets printed out.
Let us dissect the loop in a little more detail. The keyword
for
introduces the loop. It is fol-
lowed by a pair of parentheses, within which the loop details are defined. The first of the details
is the declaration
String filename
; this declares a new local variable
filename
that will be
used to hold the list elements in order. We call this variable the
loop variable.
We can choose
the name of this variable just as we can that of any other variable; it does not have to be called
“filename.” The type of the loop variable must be the same as the declared element type of the
collection we are going to use—
String
in our case.
Then follows a colon and the variable holding the collection that we wish to process. From this
collection, each element will be assigned to the loop variable in turn; and for each of those as-
signments, the loop body is executed once. In the loop body, we then use the loop variable to
refer to each element.
To test your understanding of how this loop operates, try the following exercises.
Exercise 4.20
Implement the
listAllFiles
method in your version of the music-
organizer project. (A solution with this method implemented is provided in the
music-
organizer-v3
version of this project, but to improve your understanding of the subject, we
recommend that you write this method yourself.)
Search WWH ::
Custom Search