Exercise: Objects And Collections

Questions for: Objects And Collections

What will be the output of the program?
import java.util.*; 
class H 
{
    public static void main (String[] args) 
    { 
        Object x = new Vector().elements(); 
        System.out.print((x instanceof Enumeration)+","); 
        System.out.print((x instanceof Iterator)+","); 
        System.out.print(x instanceof ListIterator); 
    } 
}
A:
Prints: false,false,false
B:
Prints: false,false,true
C:
Prints: false,true,false
D:
Prints: true,false,false
Answer: D

The Vector.elements method returns an Enumeration over the elements of the vector. Vector implements the List interface and extends AbstractList so it is also possible to get an Iterator over a Vector by invoking the iterator or listIterator method.

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]); 
    } 
}
A:
f[0] = 0
B:
f[0] = 0.0
C:
Compile Error
D:
Runtime Exception
Answer: B

The choices are between Option A and B, what this question is really testing is your knowledge of default values of an initialized array. This is an array type float i.e. it is a type that uses decimal point numbers therefore its initial value will be 0.0 and not 0

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); 
    } 
}
A:
Prints: false, false, false
B:
Prints: false, false, true
C:
Prints: false, true, false
D:
Prints: false, true, true
Answer: C

The iterator() method returns an iterator over the elements in the list in proper sequence, it doesn't return a List or a ListIterator object.

A ListIterator can be obtained by invoking the listIterator method.

What will be the output of the program?
public class Test 
{ 
    private static int[] x; 
    public static void main(String[] args) 
    { 
        System.out.println(x[0]); 
    } 
}
A:
B:
null
C:
Compile Error
D:
NullPointerException at runtime
Answer: D

In the above code the array reference variable x has been declared but it has not been instantiated i.e. the new statement is missing, for example:

private static int[]x = new int[5];

private static int[x] declares a static i.e. class level array.

the "new" keyword is the word that actually creates said array.

int[5] in association with the new sets the size of the array. so since the above code contains no new or size decalarations when you try and access x[0] you are trying to access a member of an array that has been declared but not intialized hence you get a NullPointerException at runtime.

What will be the output of the program?
package foo; 
import java.util.Vector; /* Line 2 */
private class MyVector extends Vector 
{
    int i = 1; /* Line 5 */
    public MyVector() 
    { 
        i = 2; 
    } 
} 
public class MyNewVector extends MyVector 
{
    public MyNewVector () 
    { 
        i = 4; /* Line 15 */
    } 
    public static void main (String args []) 
    { 
        MyVector v = new MyNewVector(); /* Line 19 */
    } 
}
A:
Compilation will succeed.
B:
Compilation will fail at line 3.
C:
Compilation will fail at line 5.
D:
Compilation will fail at line 15.
Answer: B

Option B is correct. The compiler complains with the error "modifier private not allowed here". The class is created private and is being used by another class on line 19.

Ad Slot (Above Pagination)
Quiz