Problems instantiating a Vector<Vector<Integer>>

  • Thread starter the.real.doctor.zoidberg
  • Start date
T

the.real.doctor.zoidberg

Hi,

i'm having some problems with instantiating a vector of vectors of
integers.
From the debugger i can see that all of the vector elements (which are
vectors) are null. But i am unable to point them to a *new* vector
because i can't iterate them.

// i can create the "main" vector, but i still need to instantiate all
100 Vectors of Integers
Vector<Vector<Integer>> skips = new Vector<Vector<Integer>>(100);

// the problem with this is that hasMoreElements returns false
Enumeration it = skips.elements();
if (it.hasMoreElements())
elem = (Vector<Integer>)it.nextElement();

// also suffers from the same problem... it says that it has no
elements
ListIterator<Vector<Integer>> it = skips.listIterator();
if (it.hasNext())
elem = new Vector<Integer>();


How do i fix this?
Thanks in advance!
 
M

Mike Schilling

Hi,

i'm having some problems with instantiating a vector of vectors of
integers.
vectors) are null. But i am unable to point them to a *new* vector
because i can't iterate them.

// i can create the "main" vector, but i still need to instantiate all
100 Vectors of Integers
Vector<Vector<Integer>> skips = new Vector<Vector<Integer>>(100);

To begin with, Vectors are different from arrays.

new Object[0] -- creates an array which can never have any elements
new Object[100] -- creates an array with 100 elements, all of which are
null to begin with

new Vector(0) -- create a Vector with no space allocated for elements,
but to which as many elements can be added as you like. It starts with
none.
new Vector(100) -- create a Vector with space allocated for 100
elements, but to which as many elements can be added as you like. It starts
with none.

In either case, if you want to add elements to your new Vector, you can use
the add() method (or create a ListIterator on the Vector and use its add()
method.)
// the problem with this is that hasMoreElements returns false

Of course it does; the Vector has no elements.
// also suffers from the same problem... it says that it has no
elements

Of course it does; the Vector has no elements.
 
H

hiwa

Hi,

i'm having some problems with instantiating a vector of vectors of
integers.
vectors) are null. But i am unable to point them to a *new* vector
because i can't iterate them.

// i can create the "main" vector, but i still need to instantiate all
100 Vectors of Integers
Vector<Vector<Integer>> skips = new Vector<Vector<Integer>>(100);

// the problem with this is that hasMoreElements returns false
Enumeration it = skips.elements();
if (it.hasMoreElements())
elem = (Vector<Integer>)it.nextElement();

// also suffers from the same problem... it says that it has no
elements
ListIterator<Vector<Integer>> it = skips.listIterator();
if (it.hasNext())
elem = new Vector<Integer>();


How do i fix this?
Thanks in advance!
If you haven't instantiated it, it should be null.
It is only natural.
Try this:
-----------------------------------------------------------------
import java.util.*;

public class VecVec{

public static void main(String[] args){
Vector<Vector<Integer>> vvi;
Vector<Integer> elem = null;

vvi = new Vector<Vector<Integer>>();
for (int i = 0; i < 100; ++i){
vvi.add(new Vector<Integer>());
}

Enumeration<Vector<Integer>> it = vvi.elements();
if (it.hasMoreElements()){
elem = (Vector<Integer>)it.nextElement();
}
System.out.println(elem != null);

elem = null;
ListIterator<Vector<Integer>> lit = vvi.listIterator();
if (lit.hasNext()){
elem = (Vector<Integer>)lit.next();
}
System.out.println(elem != null);
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,681
Members
48,796
Latest member
Greg L.

Latest Threads

Top