Java SE 8 Programmer II — Question 1

Given the code fragment:
public class Foo {
public static void main (String [ ] args) {
Map<Integer, String> unsortMap = new HashMap< > ( );
unsortMap.put (10, "z");
unsortMap.put (5, "b");
unsortMap.put (1, "d");
unsortMap.put (7, "e");
unsortMap.put (50, "j");
Map<Integer, String> treeMap = new TreeMap <Integer, String> (new
Comparator<Integer> ( ) {
@Override public int compare (Integer o1, Integer o2) {return o2.compareTo
(o1); } } );
treeMap.putAll (unsortMap);
for (Map.Entry<Integer, String> entry : treeMap.entrySet () ) {
System.out.print (entry.getValue () + " ");
}
}
}
What is the result?

Answer options

Correct answer: C

Explanation

The code creates a TreeMap that sorts the entries in reverse order based on their keys, so the output will be the values of the entries sorted from highest to lowest key. Therefore, the correct output is 'j z e b d'. Options A, B, and D do not reflect this correct sorting order.