Difference between revisions of "Iterable Range Assignment"
Jump to navigation
Jump to search
(→Test) |
|||
Line 21: | Line 21: | ||
==Integers== | ==Integers== | ||
===range(min, maxExclusive, step)=== | ===range(min, maxExclusive, step)=== | ||
+ | public static Iterable<Integer> range(int min, int maxExclusive, int step) | ||
+ | |||
===range(min, maxExclusive)=== | ===range(min, maxExclusive)=== | ||
range with a step of 1 | range with a step of 1 |
Revision as of 03:51, 26 November 2022
Contents
Java
interface java.lang.Iterable<T>
interface java.util.Iterator<T>
Code To Implement
class: | Iterables.java | |
methods: | range range range range |
|
package: | range.warmup | |
source folder: | src/main/java |
Each of the overloaded range methods must return an Iterable of the appropriate generic type. We have provided nested inner classes for IntegerRangeIterator and IntegerRangeIterable. Feel free to implement these or delete them if you would prefer to build your Integer range methods with anonymous inner classes and or a lambda and an anonymous inner class. For the Double range methods, you can define your own named nested inner classes or got the anonymous inner class/lambda route as you wish.
Integers
range(min, maxExclusive, step)
public static Iterable<Integer> range(int min, int maxExclusive, int step)
range(min, maxExclusive)
range with a step of 1
Doubles
range(min, maxExclusive, step)
range(min, maxExclusive)
range with a step of 1.0
Client
class: | RangeClient.java | |
package: | range.client | |
source folder: | src/main/java |
The code:
for (int i : Iterables.range(4, 12)) { System.out.println(i); } System.out.println(); for (double d : Iterables.range(3.0, 7.1, 0.25)) { System.out.println(d); }
produces the output:
4 5 6 7 8 9 10 11 3.0 3.25 3.5 3.75 4.0 4.25 4.5 4.75 5.0 5.25 5.5 5.75 6.0 6.25 6.5 6.75 7.0
Test
class: | IterableRangeTestSuite.java | |
package: | range.warmup | |
source folder: | src/test/java |