logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections See What Others Are Saying!
  • Question
  • Suppose that you would like to create an instance of a new Map that has an iteration order that is the same as the iteration order of an existing instance of a Map. Which concrete implementation of the Map interface should be used for the new instance?


  • Options
  • A. TreeMap
  • B. HashMap
  • C. LinkedHashMap
  • D. The answer depends on the implementation of the existing instance.

  • Correct Answer
  • LinkedHashMap 

    Explanation
    The iteration order of a Collection is the order in which an iterator moves through the elements of the Collection. The iteration order of a LinkedHashMap is determined by the order in which elements are inserted.

    When a new LinkedHashMap is created by passing a reference to an existing Collection to the constructor of a LinkedHashMap the Collection.addAll method will ultimately be invoked.

    The addAll method uses an iterator to the existing Collection to iterate through the elements of the existing Collection and add each to the instance of the new LinkedHashMap.

    Since the iteration order of the LinkedHashMap is determined by the order of insertion, the iteration order of the new LinkedHashMap must be the same as the interation order of the old Collection.


    More questions

    • 1. You want subclasses in any package to have access to members of a superclass. Which is the most restrictive access that accomplishes this objective?

    • Options
    • A. public
    • B. private
    • C. protected
    • D. transient
    • Discuss
    • 2. What will be the output of the program?
      public class RTExcept 
      {
          public static void throwit () 
          {
              System.out.print("throwit ");
              throw new RuntimeException();
          }
          public static void main(String [] args) 
          {
              try 
              {
                  System.out.print("hello ");
                  throwit();
              }
              catch (Exception re ) 
              {
                  System.out.print("caught ");
              }
              finally 
              {
                  System.out.print("finally ");
              }
              System.out.println("after ");
          }
      }
      

    • Options
    • A. hello throwit caught
    • B. Compilation fails
    • C. hello throwit RuntimeException caught after
    • D. hello throwit caught finally after
    • Discuss
    • 3. Which of the following statements is true?

    • Options
    • A. It is sometimes good practice to throw an AssertionError explicitly.
    • B. Private getter() and setter() methods should not use assertions to verify arguments.
    • C. If an AssertionError is thrown in a try-catch block, the finally block will be bypassed.
    • D. It is proper to handle assertion statement failures using a catch (AssertionException ae) block.
    • Discuss
    • 4. Which of the following will not directly cause a thread to stop?

    • Options
    • A. notify()
    • B. wait()
    • C. InputStream access
    • D. sleep()
    • Discuss
    • 5. Which one is a valid declaration of a boolean?

    • Options
    • A. boolean b1 = 0;
    • B. boolean b2 = 'false';
    • C. boolean b3 = false;
    • D. boolean b4 = Boolean.false();
    • E. boolean b5 = no;
    • Discuss
    • 6. What will be the output of the program?
      String a = "ABCD"; 
      String b = a.toLowerCase(); 
      b.replace('a','d'); 
      b.replace('b','c'); 
      System.out.println(b);
      

    • Options
    • A. abcd
    • B. ABCD
    • C. dccd
    • D. dcba
    • Discuss
    • 7. What will be the output of the program?
      class Q207 
      { 
          public static void main(String[] args) 
          {
              int i1 = 5; 
              int i2 = 6; 
              String s1 = "7"; 
              System.out.println(i1 + i2 + s1); /* Line 8 */
          } 
      }
      

    • Options
    • A. 18
    • B. 117
    • C. 567
    • D. Compiler error
    • Discuss
    • 8. In the given program, how many lines of output will be produced?
      public class Test 
      {
          public static void main(String [] args) 
          {
          int [] [] [] x = new int [3] [] [];
          int i, j;
          x[0] = new int[4][];
          x[1] = new int[2][];
          x[2] = new int[5][];
          for (i = 0; i < x.length; i++)
          {
              for (j = 0; j < x[i].length; j++) 
              {
                  x[i][j] = new int [i + j + 1];
                  System.out.println("size = " + x[i][j].length);
              }
          }
          }
      }
      

    • Options
    • A. 7
    • B. 9
    • C. 11
    • D. 13
    • E. Compilation fails
    • Discuss
    • 9. Which of the following statements about the hashcode() method are incorrect?

      1. The value returned by hashcode() is used in some collection classes to help locate objects.
      2. The hashcode() method is required to return a positive int value.
      3. The hashcode() method in the String class is the one inherited from Object.
      4. Two new empty String objects will produce identical hashcodes.

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 4
    • Discuss
    • 10. What will be the output of the program?
      public class X 
      {
          public static void main(String [] args) 
          {
              String names [] = new String[5];
              for (int x=0; x < args.length; x++)
                  names[x] = args[x];
              System.out.println(names[2]);
          }
      }
      
      and the command line invocation is

      > java X a b


    • Options
    • A. names
    • B. null
    • C. Compilation fails
    • D. An exception is thrown at runtime
    • Discuss


    Comments

    There are no comments.

Enter a new Comment