DoubleDeltaRange
Contents
Motivation
Experience implementing the Iterable<T> and Iterator<T> interfaces.
Mistakes To Avoid
![]() |
Investigate
- interface Iterable<T>
- interface Iterator<T>
Code to Implement
DoubleRange
To implement this class you will need to declare and initialize fields. You should NOT create a List<Double> and fill it with the necessary values. The iterator should produce each next value live.
class DoubleDeltaRange implements Iterable<Double>
class: | DoubleDeltaRange.java | ![]() |
methods: | constructor iterator() |
|
package: | iteration.doubledelta.group | |
source folder: | student/src/main/java |
constructor
method: public DoubleDeltaRange(double minInclusive, double maxExclusive, double delta)
(sequential implementation only)
iterator()
method: public Iterator<Double> iterator()
(sequential implementation only)
Although, you can create a named class, we encourage you to use this opportunity to create an instance of an anonymous class here.
Note: if you type the following, and hover over the red line, IntelliJ will offer you to "Implement methods" necessary to create an anonymous inner class. You only need to override the hasNext() and next() methods.
return new Iterator<>() { // Implement/Override necessary methods };
Testing Your Solution
Client
class: | DoubleDeltaRangeClient.java | CLIENT |
package: | iteration.doubledelta.client | |
source folder: | student/src/main/java |
DoubleDeltaRange range = new DoubleDeltaRange(3.0, 5.0, 0.25); for (double d : range) { System.out.println(d); }
should produce the output:
3.0 3.25 3.5 3.75 4.0 4.25 4.5 4.75
Correctness
class: | _DoubleDeltaRangeTestSuite.java | ![]() |
package: | iteration.doubledelta.group | |
source folder: | testing/src/test/java |