logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Objects and Collections Comments

  • Question
  • Which two statements are true about comparing two instances of the same class, given that the equals() and hashCode() methods have been properly overridden?

    1. If the equals() method returns true, the hashCode() comparison == must return true.
    2. If the equals() method returns false, the hashCode() comparison != must return true.
    3. If the hashCode() comparison == returns true, the equals() method must return true.
    4. If the hashCode() comparison == returns true, the equals() method might return true.


  • Options
  • A. 1 and 4
  • B. 2 and 3
  • C. 3 and 4
  • D. 1 and 3

  • Correct Answer
  • 1 and 4 

    Explanation
    (1) is a restatement of the equals() and hashCode() contract. (4) is true because if the hashCode() comparison returns ==, the two objects might or might not be equal.

    (2) and (3) are incorrect because the hashCode() method is very flexible in its return values, and often two dissimilar objects can return the same hash code value.


    Objects and Collections problems


    Search Results


    • 1. What will be the output of the program?
      public static void main(String[] args) 
      {
          Object obj = new Object() 
          {
              public int hashCode() 
              {
                  return 42;
              }
          }; 
          System.out.println(obj.hashCode()); 
      }
      

    • Options
    • A. 42
    • B. Runtime Exception
    • C. Compile Error at line 2
    • D. Compile Error at line 5
    • Discuss
    • 2. What will be the output of the program?
      public class Test 
      { 
          public static void main (String[] args) 
          {
              String foo = args[1]; 
              String bar = args[2]; 
              String baz = args[3]; 
              System.out.println("baz = " + baz); /* Line 8 */
          } 
      }
      
      And the command line invocation:

      > java Test red green blue


    • Options
    • A. baz =
    • B. baz = null
    • C. baz = blue
    • D. Runtime Exception
    • Discuss
    • 3. What will be the output of the program?
      public class Test 
      { 
          public static void main (String args[]) 
          {
              String str = NULL; 
              System.out.println(str); 
          } 
      }
      

    • Options
    • A. NULL
    • B. Compile Error
    • C. Code runs but no output
    • D. Runtime Exception
    • Discuss
    • 4. What will be the output of the program?
      import java.util.*; 
      class I 
      {
          public static void main (String[] args) 
          {
              Object i = new ArrayList().iterator(); 
              System.out.print((i instanceof List)+","); 
              System.out.print((i instanceof Iterator)+","); 
              System.out.print(i instanceof ListIterator); 
          } 
      }
      

    • Options
    • A. Prints: false, false, false
    • B. Prints: false, false, true
    • C. Prints: false, true, false
    • D. Prints: false, true, true
    • Discuss
    • 5. What will be the output of the program?
      public class Test 
      { 
          private static float[] f = new float[2]; 
          public static void main (String[] args) 
          {
              System.out.println("f[0] = " + f[0]); 
          } 
      }
      

    • Options
    • A. f[0] = 0
    • B. f[0] = 0.0
    • C. Compile Error
    • D. Runtime Exception
    • Discuss
    • 6. Assuming that the equals() and hashCode() methods are properly implemented, if the output is "x = 1111", which of the following statements will always be true?
      x = 0;
      if (x1.hashCode() != x2.hashCode() )  x = x + 1;
      if (x3.equals(x4) )  x = x + 10;
      if (!x5.equals(x6) ) x = x + 100;
      if (x7.hashCode() == x8.hashCode() )  x = x + 1000;
      System.out.println("x = " + x);
      

    • Options
    • A. x2.equals(x1)
    • B. x3.hashCode() == x4.hashCode()
    • C. x5.hashCode() != x6.hashCode()
    • D. x8.equals(x7)
    • Discuss
    • 7. What two statements are true about properly overridden hashCode() and equals() methods?

      1. hashCode() doesn't have to be overridden if equals() is.
      2. equals() doesn't have to be overridden if hashCode() is.
      3. hashCode() can always return the same value, regardless of the object that invoked it.
      4. equals() can be true even if it's comparing different objects.

    • Options
    • A. 1 and 2
    • B. 2 and 3
    • C. 3 and 4
    • D. 1 and 3
    • Discuss
    • 8. Which statement is true for the class java.util.HashSet?

    • Options
    • A. The elements in the collection are ordered.
    • B. The collection is guaranteed to be immutable.
    • C. The elements in the collection are guaranteed to be unique.
    • D. The elements in the collection are accessed using a unique key.
    • Discuss
    • 9. Which of the following are true statements?

      1. The Iterator interface declares only three methods: hasNext, next and remove.
      2. The ListIterator interface extends both the List and Iterator interfaces.
      3. The ListIterator interface provides forward and backward iteration capabilities.
      4. The ListIterator interface provides the ability to modify the List during iteration.
      5. The ListIterator interface provides the ability to determine its position in the List.

    • Options
    • A. 2, 3, 4 and 5
    • B. 1, 3, 4 and 5
    • C. 3, 4 and 5
    • D. 1, 2 and 3
    • Discuss
    • 10. Which statement is true for the class java.util.ArrayList?

    • Options
    • A. The elements in the collection are ordered.
    • B. The collection is guaranteed to be immutable.
    • C. The elements in the collection are guaranteed to be unique.
    • D. The elements in the collection are accessed using a unique key.
    • Discuss


    Comments

    There are no comments.

Enter a new Comment