The main difference is that all access to a Vector is synchronized, which is slower, but safer in a multi-threaded environment. If you are not using threads, or have protected your access in another way, ArrayList is a better choice.
The only other thing to be careful of is Vector is part of
Java 1.0 and 1.1, but ArrayList was only added in Java 1.2 and 1.3, so if you write code using ArrayList (or any of the collections API) you need at least a Java 1.2 VM.