question archive Listed next is a code skeleton for an interface called Enumeration and a class called NameCollection
Subject:Computer SciencePrice:3.87 Bought7
Listed next is a code skeleton for an interface called Enumeration and a class called NameCollection. Enumeration provides an interface to sequentially iterate through some type of collection. In this case, the collection will be the class NameCollection that simply stores a collection of names using an array of strings.
public interface Enumeration { // Returns true if another element in the collection exists public boolean hasNext(); // Returns the next element in the collection as an Object public Object getNext(); } /** * NameCollection implements a collection of names using * a simple array. */ public class NameCollection { String[] names; /** * The list of names is initialized from outside * and passed in as an array of strings */ public NameCollection(String[] names) { this.names = names; } /** * getEnumeration should return an instance of a class that implements * the Enumeration interface where hasNext() and getNext() * correspond to data stored within the names array. */ public Enumeration getEnumeration () { // Complete code here using an inner class } } Complete the method getEnumeration() so that it returns an anonymous inner class that corresponds to the Enumeration interface for the names array in NamesCollection. Then write a main method that creates a NamesCollection object with a sample array of strings, retrieves the Enumeration for this class via getEnumeration(), and then iterates through the enumeration outputting each name using the getNext() method

Answer:
Enumeration.java
_______________________________
public interface Enumeration {
// Returns true if another element in the collection exists
public boolean hasNext();
//Returns the next element in the collection as an Object
public Object getNext();
}
___________________________________________
NameCollection.java
_____________________________________________
/**
* NameCollection implements a collection of names using * a simple array.
*/
public class NameCollection {
String[] names;
/**
* The list of names is initialized from outside * and passed in as an array of strings
*/
public NameCollection(String[] names) {
this.names = names;
}
/**
* getEnumeration should return an instance of a class that implements * the Enumeration interface where hasNext() and getNext() * correspond to data stored within the names array.
*/
public Enumeration getEnumeration() {
// Complete code here using an inner class
return new Enumeration() {
int index = 0;
@Override
public boolean hasNext() {
return index != names.length;
}
@Override
public Object getNext() {
return names[index++];
}
};
}
public static void main(String[] args) {
//Array of names
String[] names = new String[]{"Jack", "Harry", "Jacob", "Charlie", "Thomas", "Oscar", "James"};
NameCollection collection = new NameCollection(names);
//Get Enumeration
Enumeration enumeration = collection.getEnumeration();
//Iterate for each names
while (enumeration.hasNext()) {
System.out.println(enumeration.getNext());
}
}
}
OUTPUT:
PFA

