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

Discussion

What will be the output of the program?

import java.util.*;

public class Fragment28
{
    public static void main(String[] args)
    {
        Map<String, Integer> m = new HashMap<String, Integer>();
        m.put("a", 1); m.put("b", 1);
        System.out.println(
            m.values().size() + " " + new HashSet<Integer>(m.values()).size());
    }
}

  • A.The program prints 2 2
  • B.The program prints 1 2
  • C.The program prints 1 1
  • D.The program prints 2 1

Answer: D

values returns a Collection, not a Set, so duplicate values are kept and its size matches the number of entries, which is 2. Copying it into a HashSet collapses the duplicates and gives 1. Keys must be unique; values need not be.

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

Post your comment

Please log in or register to post a comment.