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
- A. A compilation error occurs.
- B. d b e z j
- C. j z e b d
- D. z b d e j
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.