Home Javatutorials Making Enumerations Iterable - JDK 5 Example



Making Enumerations Iterable - JDK 5 Example
Posted on: April 18, 2011 at 12:00 AM
Making Enumerations Iterable - tutorial & newsletter of Making Enumerations Iterable.

Enumeration's Iteration

In this section, you will learn how we can make Enumeration iterable. The best way to do this to create an adapter for the Enumeration. And for fulfilling iterable interface, create an IterableEnumeration which is Generic enabled.

Example

In the given below example We are going to make an Enumeration iterable :

package simpleCoreJava;

import java.util.*;

public class IterableEnumeration<T> implements Iterable<T> {
private final Enumeration<T> en;

public IterableEnumeration(Enumeration<T> en) {
this.en = en;
}

// return an adaptor for the Enumeration
public Iterator<T> iterator() {
return new Iterator<T>() {
public boolean hasNext() {
return en.hasMoreElements();
}

public T next() {
return en.nextElement();
}

public void remove() {
throw new UnsupportedOperationException();
}
};
}
}

Second Way

The second way for using it is by making an instance of the iterableEnumeration and also giving it generic type as below :

import java.sql.*;
import java.util.*;

public class IterableTest {
public static void main(String[] args) {
Vector<String> sv = new Vector<String>();
sv.addElement("Maximilian");
sv.addElement("Francis");
sv.addElement("Kabutz");

// using the generics makes it look a bit clumsy
IterableEnumeration<String> ie =
new IterableEnumeration<String>(sv.elements());
for (String s : ie) {
System.out.println(s);
}

// Without generics, we cannot automatically cast to String
IterableEnumeration ie2 =
new IterableEnumeration(sv.elements());
for (Object s : ie2) { // here we now have to use Object type
System.out.println(s);
}

// Again, generics makes the code look clumsy
// here you should load your own driver, if applicable
new sun.jdbc.odbc.JdbcOdbcDriver();
IterableEnumeration<Driver> drivers =
new IterableEnumeration<Driver>(
DriverManager.getDrivers());
for (Driver driver : drivers) {
System.out.println("driver = " + driver.getClass());
}

// or we could build up the list using Collections.list()
// and iterate through that - this is ineffient.
for (Driver driver : Collections.list(
DriverManager.getDrivers())) {
System.out.println("driver = " + driver.getClass());
}
}
}

 

Related Tags for Making Enumerations Iterable - JDK 5 Example:


More Tutorials from this section

Ask Questions?    Discuss: Making Enumerations Iterable - JDK 5 Example  

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 

Ask Questions?

If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.

Ask your questions, our development team will try to give answers to your questions.