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!!

12 Years
Discussion Span
Last Post by jwenting

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).


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();

Notice how there's no set size anywhere.


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.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.