当我需要使用hashMap,因为它不同步

PSR*_*PSR 1 java hashmap

我知道Hashtable是同步的,而HashMap则不是.

据我所知,同步意味着一个线程一次访问一个对象.

所以使用Hashtable时没有问题.但在我的项目中,我正在使用HashMap.我在很多地方都用过它.直到现在我没有遇到任何HashMap问题.

所以当同步概念进入图片时(即使用HashMap).

我可以在使用HashTable的所有地方使用HashMap吗?

我可以在使用HashMap的所有地方使用HashTable吗?

ass*_*ias 5

所以使用Hashtable时没有问题

不完全 - 在某些情况下,哈希表确实需要外部同步(例如在迭代时).

什么时候同步概念会出现在图片中(即使用HashMap)?

如果你有一个包含HashMap的类:

public class SomeClass {
    private Map map = new HashMap();
}
Run Code Online (Sandbox Code Playgroud)

并且您map从多个线程访问时,可能会出现意外行为并应使用足够的同步.

只要您只从一个线程访问您的地图或它是方法中的局部变量,您就可以了.

我可以在使用HashTable的所有地方使用HashMap吗?

比照 上面:如果几个线程没有访问地图,则为yes.

我可以在使用HashMap的所有地方使用HashTable吗?

总是如此,尽管在性能方面可能效率较低.