Java: Convert an instance of the legacy type Dictionary to a Map
collections, java
Solution
Using Guava and Java 8:
Iterator<String> keysIter = Iterators.forEnumeration(dict.keys());
Map<String, Object> dictCopy = Maps.toMap(keysIter, dict::get);
Alternative in pure Java 8:
List<String> keys = Collections.list(dict.keys());
Map<String, Object> dictCopy = keys.stream()
.collect(Collectors.toMap(Function.identity(), dict::get));
Problem
I'm calling a library that, for API compatibility reasons, returns an instance of type `java.util.Dictionary`, but I want to have an instance implementing `java.util.Map`. How can I easily convert an `java.util.Dictionary` instance to a `java.util.Map` instance?