Java please! Create a SequenceIterator class that implements the interface Itera
ID: 3700903 • Letter: J
Question
Java please!
Create a SequenceIterator class that implements the interface Iterator of java.util package and can iterate over any sequence of numbers.
Your SequenceIterator class defines two private fields:
generator of type NumberGenerator that allows to generate the next number in a sequence,
index of type int that represents the index of the next number to be generated.
The SequenceIterator class one constructor that constructs a sequence iterator object with given number generator, and size. It also initializes the index to 0.
The SequenceIterator class overrides also the two methods hasNext() and next() defined by the Iterator interface. Create SequenceIterator class consisting of the following:
import java.util.Iterator;
public class SequenceIterator implements Iterator{
private NumberGenerator generator; // a NumberGenerator object
// that generates and returns a number of index n in a
// sequence of numbers
private int size; // size of the sequence
private int index; // index of the next number to be generated in the sequence
/**
* Constructs a SequenceIterator with given number generator and size
* This constructs initializes also the index to 0
* @param generator
* @param size
*/
public SequenceIterator(NumberGenerator generator, int size) {
// Your code comes here
}
@Override
public boolean hasNext() {
// Your code comes here
}
@Override
public Integer next() {
// Your code comes here
}
}
Here's the NumberGenerator class:
public interface NumberGenerator {
/**
* generates and returns the number of order n in a sequence of numbers
* @param n order of the generated number in the sequence
* @return the nth number in the sequence
*/
public int generateNumber(int n);
}
Explanation / Answer
import java.util.Iterator;
public class SequenceIterator implements Iterator{
private NumberGenerator generator; // a NumberGenerator object
// that generates and returns a number of index n in a
// sequence of numbers
private int size; // size of the sequence
private int index; // index of the next number to be generated in the sequence
/**
* Constructs a SequenceIterator with given number generator and size
* This constructs initializes also the index to 0
* @param generator
* @param size
*/
public SequenceIterator(NumberGenerator generator, int size) {
this.generator = generator;
this.index = 0;
this.size = size;
}
@Override
public boolean hasNext() {
if (this.index == this.size){
return(false);
}
return(true);
}
@Override
public Integer next() {
Integer n = this.generator.generateNumber(this.index);
this.index = this.index + 1;
return(n);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.