Is there really that much of a difference between the performance of Vector
and ArrayList
? Is it good practice to use ArrayLists at all times when
If thread safety is not an issue, ArrayList
will be faster as it does not have to synchronize. Although, you should always declare your variable as a List
so that the implementation can be changed later as needed.
I prefer to handle my synchronization explicitly because a lot of operations require multiple calls. For example:
if (!myList.isEmpty()) {
myList.get(0);
}
should be:
synchronized (myList) {
if (!myList.isEmpty()) {
myList.get(0);
}
}