Making Enumerations Iterable - JDK 5 Example

Making Enumerations Iterable - tutorial & newsletter of Making Enumerations Iterable.

Making Enumerations Iterable - JDK 5 Example

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());
}
}
}

 

Tutorials

  1. Assertion in java
  2. Anonymous Inner Classes - Anonymous Inner Classes tutorial
  3. Appending Strings - Java Tutorials
  4. Assertion in Java
  5. Autoboxing unboxing in Java - Java Tutorials
  6. Thread Deadlocks - Java Tutorials
  7. BASIC Java - Java Tutorials
  8. Interthread Communication in Java
  9. boolean comparisons - tutorial
  10. Catching Exceptions in GUI Code - Java Tutorials
  11. Exception in Java - Java Tutorials
  12. Causing Deadlocks in Swing Code
  13. Class names don't identify a class - Java Tutorials
  14. Commenting out your code - Java Tutorials
  15. Java Deadlocks - Java Deadlocks Tutorials, Deadlocks in Java
  16. Disassembling Java Classes - Java Tutorials
  17. Double-checked locking,java tutorials,java tutorial
  18. Exceptional Constructors - Java Tutorials
  19. Final Methods - Java Tutorials
  20. garbage collection in java
  21. Java - JDK Tutorials
  22. J2EE Singleton Pattern - Design Pattern Tutorials
  23. Java Comments - Java Tutorials
  24. Java Field Initialisation - Java Tutorials
  25. Java HashSet  - Java Tutorials
  26. Java Multi Dimensions Array - Java Tutorials
  27. java awt package tutorial
  28. Java GC
  29. Java HashMap - Java Tutorials
  30. JDK 1.4 the NullPointerException - Java Tutorials
  31. HashMap and HashCode
  32. LinkedHashMap - Java Tutorials
  33. Which is Faster - LinkedList or ArrayList?
  34. Making Enumerations Iterable - JDK 5 Example
  35. Making Exceptions Unchecked - java tutorial,java tutorials
  36. Creation Time Comparison of Multi Dimensional Array- Java Tutorials
  37. Multicasting in Java - java tutorials,tutorial
  38. Non-virtual Methods in Java - java tutorials
  39. Orientating Components Right to Left,java newsletter,java,tutorial
  40. The link to the outer class,java tutorial,java tutorials