Machine-translated by Google. Questions are authored in English.
Top

Discussion

What will be the output of the program?

import java.util.*;

public class Sample47
{
    public static void main(String[] args)
    {
        Map<String, Integer> m = new TreeMap<String, Integer>();
        m.put("b", 2); m.put("a", 1);
        for (Map.Entry<String, Integer> e : m.entrySet())
        {
            e.setValue(e.getValue() * 10);
        }
        System.out.println(m);
    }
}

  • A.An UnsupportedOperationException is thrown.
  • B.The program prints {a=1, b=2}
  • C.The program prints {a=10, b=20}
  • D.The program prints {b=20, a=10}

Answer: C

An entry obtained during iteration is a view onto the map, so setValue writes straight through and the stored values change. A TreeMap keeps its keys sorted, so the output is {a=10, b=20}. Changing a value is not a structural modification and does not upset the iterator.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.