Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2006

Tip: Looking for answers? Try searching our database.

Problems instantiating a Vector<Vector<Integer>>

Thread view: 
the.real.doctor.zoidberg@gmail.com - 01 Nov 2006 01:25 GMT
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!
Mike  Schilling - 01 Nov 2006 02:12 GMT
> Hi,
>
[quoted text clipped - 7 lines]
> 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.
hiwa - 01 Nov 2006 02:38 GMT
> Hi,
>
[quoted text clipped - 21 lines]
> 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);
 }


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.