Old discussion...
Array lists have some drawbacks: they can be a bit slower, indeed (Vector more than ArrayList, because they are synchronized (related to concurrent access, in threads), that's why they are quite deprecated.
As said, in most sketches, the difference of speed, at access time, between array lists and plain arrays is probably unnoticeable, the main bottleneck being the graphical operations!
If that's really critical, ie. if, by using a profiler, you find out you really loose a significant amount of time in the array list access, and if you have two separate phases (first, building the list, second, using it), you can copy the content of the array list into an array.
Ah, there is a case where the difference of speed can be important: when you use an array list to store primitives, like simple ints or floats. To access them, not only you have the little get() function call overhead, but also the unboxing overhead, since primitives must be wrapped in their equivalent object (Integer vs. int, Float vs. float, etc.). This can be costly, and also cause a large memory overhead too!
Array lists are better used with objects, from PVector to your sophisticated own classes. Here, they generally behave as well as arrays for access purpose and much better for extensible storage.
Note: I wrote a note about this in the
Technical FAQ (
Why use ArrayList instead of array with append()? but Zoho tends to break these links).