Vector と ArrayList のように、機能がよく似たクラスが用意されていますが、
どのように使い分けるのですか?

C 言語の scanf のように、テキストではよく解説されているが、使わないほうがいいとか、
そういうクラスもあるのでしょうか?