HashMap может содержать null-ключи, Hashtable - нет (вылетит NullPointerException); различный формулы расчета хэша; Hashtable выполняет рехэширование (изменяет размер и переставляет ключи), HashMap - нет (только увеличение размера таблицы); методы Hashtable синхронизированны, HashMap - нет
Методы класса Vector синхронизированы, ArrayList - нет.