Space Rocker Space Rocker - 1 year ago 100
Java Question

How can i initialize an array without knowing it size?

I have a situation where i have to apply a criteria on an input array and reuturn another array as output which will have smaller size based upon the filtering criteria.

Now problem is i do not know the size of filtered results, so i can not initialize the array with specific value. And i do not want it to be large size will null values because i am using array.length; later on.

One way is to first loop the original input array and set a counter, and then make another loop with that counter length and initialize and fill this array[]. But is there anyway to do the job in just one loop?

Answer Source

You can't... an array's size is always fixed in Java. Typically instead of using an array, you'd use an implementation of List<T> here - usually ArrayList<T>, but with plenty of other alternatives available.

You can create an array from the list as a final step, of course - or just change the signature of the method to return a List<T> to start with.