永发信息网

java concurrenthashmap和hashmap的区别

答案:2  悬赏:80  手机版
解决时间 2021-01-05 02:53
  • 提问者网友:溺爱和你
  • 2021-01-04 03:09
java concurrenthashmap和hashmap的区别
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-01-04 03:41
前者是
A hash table supporting full concurrency of retrievals and
adjustable expected concurrency for updates. This class obeys the
same functional specification as Hashtable, and
includes versions of methods corresponding to each method of
Hashtable. However, even though all operations are
thread-safe, retrieval operations do not entail locking,
and there is not any support for locking the entire table
in a way that prevents all access. This class is fully
interoperable with Hashtable in programs that rely on its
thread safety but not on its synchronization details.

后者是
Hash table based implementation of the Map interface. This
implementation provides all of the optional map operations, and permits
null values and the null key. (The HashMap
class is roughly equivalent to Hashtable, except that it is
unsynchronized and permits nulls.) This class makes no guarantees as to
the order of the map; in particular, it does not guarantee that the order
will remain constant over time.
全部回答
  • 1楼网友:往事隔山水
  • 2021-01-04 05:07
类 hashset 所有已实现的接口:serializable, cloneable, iterable, collection, set 此类实现 set 接口,由哈希表(实际上是一个 hashmap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序搜索恒久不变。此类允许使用 null 元素。 此类为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此 set 进行迭代所需的时间与 hashset 实例的大小(元素的数量)和底层 hashmap 实例(桶的数量)的“容量”的和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。 注意,此实现不是同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 collections.synchronizedset 方法来“包装” set。最好在创建时完成这一操作,以防止对该 set 进行意外的不同步访问: set s = collections.synchronizedset(new hashset(...)); 类 hashmap 所有已实现的接口:serializable, cloneable, map 基于哈希表的 map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,hashmap 类与 hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 类 concurrenthashmap 所有已实现的接口: serializable, concurrentmap, map 支持获取的完全并发和更新的所期望可调整并发的哈希表。此类遵守与 hashtable 相同的功能规范,并且包括对应于 hashtable 的每个方法的方法版本。不过,尽管所有操作都是线程安全的,但获取操作不 必锁定,并且不 支持以某种防止所有访问的方式锁定整个表。此类可以通过程序完全与 hashtable 进行互操作,这取决于其线程安全,而与其同步细节无关。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯