Pour votre première question...
La liste, la carte et le jeu ont des objectifs différents. Je vous suggère de vous renseigner sur le cadre des collections Java à l'adresse http://java.sun.com/docs/books/tutorial/collections/interfaces/index.html .
Pour être un peu plus concret :
- utilisez List si vous avez besoin d'une structure de données de type tableau et que vous devez itérer sur les éléments.
- utilisez Map si vous avez besoin de quelque chose comme un dictionnaire
- Utilisez un ensemble si vous avez seulement besoin de décider si quelque chose appartient à l'ensemble ou non.
Pour votre deuxième question...
La principale différence entre Vector et ArrayList est que le premier est synchronisé, le second ne l'est pas. Vous pouvez en savoir plus sur la synchronisation dans Java Concurrency en pratique .
La différence entre Hashtable (notez que le T n'est pas une majuscule) et HashMap est similaire, le premier est synchronisé, le second ne l'est pas.
Je dirais qu'il n'y a pas de règle empirique pour préférer une implémentation ou une autre, cela dépend vraiment de vos besoins.