I want to know if it is safe/advisable to convert from ArrayList to Array? I have a text file with each line a string:
1236 1233 4566 4568 ....
I want to read them into array list and then i convert it to Array. Is it advisable/legal to do that?
thanks
An array is faster and that is because ArrayList uses a fixed amount of array. However when you add an element to the ArrayList and it overflows. It creates a new Array and copies every element from the old one to the new one.
The Java ArrayList toArray() method converts an arraylist into an array and returns it. The syntax of the toArray() method is: arraylist.toArray(T[] arr) Here, arraylist is an object of the ArrayList class.
Yes it is safe to convert an ArrayList
to an Array
. Whether it is a good idea depends on your intended use. Do you need the operations that ArrayList
provides? If so, keep it an ArrayList
. Else convert away!
ArrayList<Integer> foo = new ArrayList<Integer>(); foo.add(1); foo.add(1); foo.add(2); foo.add(3); foo.add(5); Integer[] bar = foo.toArray(new Integer[foo.size()]); System.out.println("bar.length = " + bar.length);
outputs
bar.length = 5
This is the best way (IMHO).
List<String> myArrayList = new ArrayList<String>(); //..... String[] myArray = myArrayList.toArray(new String[myArrayList.size()]);
This code works also:
String[] myArray = myArrayList.toArray(new String[0]);
But it less effective: the string array is created twice: first time zero-length array is created, then the real-size array is created, filled and returned. So, if since you know the needed size (from list.size()
) you should create array that is big enough to put all elements. In this case it is not re-allocated.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With