HashMap和HashSet都不是线程安全的。
在多线程环境下,如果多个线程同时访问HashMap或HashSet,并且其中至少有一个线程修改了集合的结构(例如添加或删除元素),可能会导致集合的不一致性或抛出ConcurrentModificationException异常。
如果需要在多线程环境下使用HashMap或HashSet,可以通过使用Collections.synchronizedMap()或Collections.synchronizedSet()方法来创建一个线程安全的Map或Set,或者使用ConcurrentHashMap或CopyOnWriteArraySet等并发集合类来保证线程安全性。