Understanding orMap
Look at the first two variants of the orMap
method (the
recursively defined variant and the variant that uses the
while
loop. Identify
the four parts (BASE-VALUE, Termination/Continuation PREDICATE,
UPDATE, and ADVANCE) in each of them.
Look also at the tests in the Examples
class.
After you understand how the while
loop works, design two
variants of the
method that produces a new ArrayList
that contains all
elements of the original list that satisfy the given ISelect
predicate.
Test the methods by producing all red balloons or all small balloons.
Design and test two variants of the andMap
method that determines whether all elements of a given list satisfy
the given ISelect
predicate.
Test the methods by checking whether a list contains all red balloons or all small balloons.
Repeat all the parts of the previous task with
the remaining two variants of the orMap
— namely the one
that uses the for
loop with the Traversal
and the
one that uses counted for
loop.
Optionally, you may look at the ultimate abstraction of these traversals shown in the ForEach class.
Read the tests for for each variant of the compute method of the ForEach class shown in the Examples class. Make sure you understand how they work. Design additional tests for each of the three compute methods.