I am designing a Rinex file reader class in Java and this is my first project in Java. I need to store data into an array or vector. I am reading the data from the file related to the time the data occurs. At first I tried to use an array but I do not know the size of the array ahead of time. Is there anyway to make an array change size as it grows in a loop? For example in Matlab you could initialize the array to be an array of zeros. Or do I have to use vectors to do this? I also have this problem with a 3D array that I was creating. How would I use vectors to create a 3D array? Thanks!!

Recommended Answers

All 7 Replies

No, you cannot change the size of an array.
Use an ArrayList instead, not a Vector. Vector has notoriously poor performance, and should only be used when an ArrayList cannot provide the functionality needed while a Vector can (by the time you know when that is you know what it is).

Vectors are evil, look up the ArrayList if you want an array that grows as needed.

Thanks for your help. I have tried looking up arraylist on the Java Api site but I am having a little trouble understanding what it is and what syntax is required to make it work. Can anyone give me a better explanation than what is on Sun's page? Thanks!!

import java.util.*;

class Test
{
     public static void main(String[] args)
     {
            ArrayList al = new ArrayList();
            al.add("one");
            al.add("two");
      }
}

Notice how there's no set size anywhere.

How can someone understand Vector but not ArrayList?
They have the exact same interface...

Hi everyone,

Vectors are evil, look up the ArrayList if you want an array that grows as needed.

Narue what makes you say that vectors are evil?

Richard West
*****************************************************

The same reason I say they should be deprecated (or better yet, banned to the 7th circle of computer hell) :)
They're slow, have a confusing API (with many duplicate functions) because of the way they were retrofitted to support the List interface, are generally not needed (and when you could have a case for them there are still better alternatives), etc. etc.

Basically they're among the dinosaurs of Java, together with StringTokenizer and some other very old classes that now have better alternatives but have been kept on because someone forgot to remove them.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.