A "Vector" is a legacy collection which you probably shouldn't use, unless other legacy code requires you to. A "collection" is a general term to describe groups of objects, and could include arrays, Vectors, Lists, Sets etc. A java.util.Collection is the interface which all colletion implementations in the JDK use. An ArrayList is one flavour of avaliable Collection, an implementation of the List interface. It is designed to hold growable sequences of data. As far as performance goes, each Collection has its pros and cons. For example an ArrayList will give you rapid random access to elements, but will be slower than other Collections for inserts and updates; whereas a LinkedList will be better for insertions and deletions, but slower for random access. Performance is not the main issue when using most Collections, rather what type of data you are storing: a group of object which are all unique? Use a Set. A group of objects which are sequential? Use a List. A group of objects which are key:value pairs? Use a Map.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop