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

Discussion

Which line rests on a mistaken assumption?

import java.util.*;

public class Sample29
{
    public static void main(String[] args)
    {
        Set<String> s = new HashSet<String>();
        s.add("b"); s.add("a");
        assert s.iterator().next().equals("a");
        System.out.println(s);
    }
}

  • A.assert s.iterator().next().equals("a");
  • B.s.add("b"); s.add("a");
  • C.System.out.println(s);
  • D.Nothing here is wrong.

Answer: A

A HashSet gives no ordering guarantee, so asserting which element comes first encodes an accident of the current implementation. It may hold today and stop holding on another JDK or after a resize. Ordering is asserted only on a type that promises it, such as TreeSet or LinkedHashSet.

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

Post your comment

Please log in or register to post a comment.