Problem:
When working with legacy code, you need to convert Java Collection to Enumeration. This example shows how to do that using Java Collections API features!
Solution:
The following Java code shows how to use java.util.Collections.enumeration(Collection) to convert Java List to Java Enumeration with elements of the same generic type:
package com.farenda.java; import java.util.Arrays; import java.util.Collections; import java.util.Enumeration; import java.util.List; public class CollectionsEnumeration { public static void main(String[] args) { List<String> coll = Arrays.asList("java", "util", "Collections"); System.out.println("Collection: " + coll); // convert a Collection to Enumeration of the same type: Enumeration<String> en = Collections.enumeration(coll); System.out.println("Enumeration (no toString): " + en); while (en.hasMoreElements()) { System.out.println(en.nextElement()); } } }
Simple, no? :-) The only thing you have to keep in mind is that the internal implementation of Enumeration interface doesn’t provide it’s toString() method, so it won’t show its elements, what can be seen when running the example:
Collection: [[java, util, Collections]] Enumeration (no toString): java.util.Collections$3@677327b6 java util Collections
As you can see, we had to iterate over the enumeration and print items one by one. Also, Java Enumeration doesn’t implement java.lang.Iterable, so it can’t be used with for-each loop.