Difference between revisions of "Iterable Immutable List Assignment"
Jump to navigation
Jump to search
Line 47: | Line 47: | ||
{{JavaToImplement|EmptyImmutableList|iterator|immutable.list.assignment}} | {{JavaToImplement|EmptyImmutableList|iterator|immutable.list.assignment}} | ||
===iterator()=== | ===iterator()=== | ||
+ | return an [https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html Iterator] for the EmptyImmutableList. | ||
+ | |||
+ | Question to ask yourself: Does an iterator for an EmptyImmutableList ever have a next? | ||
==class NonEmptyImmutableList== | ==class NonEmptyImmutableList== | ||
{{JavaToImplement|NonEmptyImmutableList|iterator|immutable.list.assignment}} | {{JavaToImplement|NonEmptyImmutableList|iterator|immutable.list.assignment}} | ||
===iterator()=== | ===iterator()=== | ||
+ | return an [https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html Iterator] for this instance of NonEmptyImmutableList. | ||
=Test= | =Test= |
Revision as of 09:23, 14 December 2020
Contents
Studio To Revisit
In this studio we will complete the DefaultImmutableList
implementation from the ImmutableList studio.
ImmutableList
The ImmutableList interface extends Iterable which has one method: iterator().
public interface ImmutableList<E> extends Iterable<E> { E head(); ImmutableList<E> tail(); boolean isEmpty(); }
Iterable
interface java.lang.Iterable<T>
Iterator
interface java.util.Iterator<T>
Examples
Using Iterable
Implementing Iterable
DoubleRange
ArrayIterable
Example
class: | IterableImmutableListExample.java | ![]() |
package: | immutable.list.example | |
source folder: | src/main/java |
The code:
ImmutableList<Integer> numbers = Lists.brackets(4, 66, 99); for (Integer i : numbers) { System.out.println(i); }
produces:
4 66 99
Code To Implement
enum EmptyImmutableList
class: | EmptyImmutableList.java | ![]() |
methods: | iterator | |
package: | immutable.list.assignment | |
source folder: | src/main/java |
iterator()
return an Iterator for the EmptyImmutableList.
Question to ask yourself: Does an iterator for an EmptyImmutableList ever have a next?
class NonEmptyImmutableList
class: | NonEmptyImmutableList.java | ![]() |
methods: | iterator | |
package: | immutable.list.assignment | |
source folder: | src/main/java |
iterator()
return an Iterator for this instance of NonEmptyImmutableList.
Test
class: | IterableAssignmentTestSuite.java | ![]() |
package: | immutable.list.assignment | |
source folder: | src/test/java |