`

HashSet<E> ConcurrentHashMap和HashMap

 
阅读更多
类 HASHSET<E>
所有已实现的接口:Serializable, Cloneable, Iterable<E>, Collection<E>, Set<E>

此类实现 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<K,V>
所有已实现的接口:Serializable, Cloneable, Map<K,V>
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。



类 CONCURRENTHASHMAP<K,V>
所有已实现的接口:
Serializable, ConcurrentMap<K,V>, Map<K,V>


支持获取的完全并发和更新的所期望可调整并发的哈希表。此类遵守与 Hashtable 相同的功能规范,并且包括对应于 Hashtable 的每个方法的方法版本。不过,尽管所有操作都是线程安全的,但获取操作不 必锁定,并且不 支持以某种防止所有访问的方式锁定整个表。此类可以通过程序完全与 Hashtable 进行互操作,这取决于其线程安全,而与其同步细节无关。


此类与 Hashtable 相似,但与 HashMap 不同,它不 允许将 null 用作键或值。

分享到:
评论

相关推荐

    Java集合框架完整说明便于了解集合

    HashMap 和 Hashtable 的区别,HashSet如何检查重复,HashMap的底层实现,HashMap 多线程操作导致死循环问题,ConcurrentHashMap 和 Hashtable 的区别,ConcurrentHashMap线程安全的具体实现⽅式/底层具体实现,...

    Java容器.xmind

    Set&lt;Map.Entry&lt;K,V&gt;&gt; entrySet​() 线程不安全,速度快,允许存放null键,null值。 SortedMap 标记: class TreeMap 对键进行排序 HashTable 标记: class Properties 标记: class 线程安全,速度慢,不允许...

    Java 集合方面的面试题

    HashSet 和 TreeSet 有什么区别? HashMap 和 TreeMap 有什么区别? 什么是迭代器?如何使用它来遍历集合? 什么是 fail-fast 机制? 如何使用 Collections 类对集合进行排序? 什么是 Comparable 和 Comparator ...

    java集合类原理面试题

    java集合类 Java中有哪些容器(集合类)?...说一说TreeSet和HashSet的区别 说一说HashSet的底层结构 BlockingQueue是怎么实现的 Stream(不是IOStream)有哪些方法 BlockingQueue中有哪些方法,为什么这样设计?

    java8源码-putaoo.github.io:putao.github.io

    java8 源码 目录 Java 基础 容器 并发 ...的长度为什么是2的幂次方、HashSet 和 HashMap 区别、ConcurrentHashMap 和 Hashtable 的区别、ConcurrentHashMap线程安全的具体实现方式/底层具体实现、集

    java8源码-java-start::seedling::seedling::seedling:学习Java语法过程中的一些案例

    java8 源码 目录 ...的长度为什么是2的幂次方、HashSet 和 HashMap 区别、ConcurrentHashMap 和 Hashtable 的区别、ConcurrentHashMap线程安全的具体实现方式/底层具体实现、集合框架底层数据结构总结

    集合类底层源码解析汇总

    java所有集合类底层源码解析汇总,包括ArrayList、HashMap、HashSet、LinkedList、TreeMap、HashSet、ConcurrentHashMap等集合框架的底层实现源码大白话解读。

    Java 集合学习指南 - v1.1.pdf

    Java的集合类总结,包括HashMap、HashSet、HashTable、LinkedHashMap、LinkedHashSet、ArrayList、LinkedList、ConcurrentHashMap的实现原理,很详实,面试的话可以认真看看

    01java基础-集合知识点详解.xlsx

    就是一些通用java集合知识点整理,ArrayList LinkedList,HashMap,HashTable ,ConcurrentHashMap,HashSet,LinkedHashSet类通过线程安全否: 底层: 初始值: 扩容 : 区别(对比优势) 图解

    Java后端面试问题整理.docx

    • 熟悉常用集合数据结构(数组、Hashmap、ConcurrentHashMap、HashTable、ArrayList、Vetor、LinkedList、HashSet、TreeSet、LinkedHashSet),了解AVL、RBtree、B/B+树、跳表 • 熟悉常见异常分类以及处理,熟悉反射...

    安卓java读取网页源码-interview:安卓面试

    HashMap,HashTable,ConcurrentHashMap 实现原理以及区别? HashSet 与 HashMap 怎么判断集合元素重复? String、StringBuffer、StringBuilder 之间的区别? 对反射的了解? 对注解的了解? 对依赖注入的了解? 对...

    JavaDemo:记录 Java 的学习经历

    如 HashMap(数组-链表-红黑树),HashSet,ConcurrentHashMap(CAS算法) 修改垃圾回收机制 取消堆中的永久区(PremGen)-&gt; 回收条件苛刻 使用元空间(MetaSpace)-&gt; 直接使用物理内存 -&gt; 加载类文件 代码更少...

    java8源码-JavaRobot:Java学习笔记,JavaLearningNote

    ConcurrentHashMap TreeMap Hashtable Set源码系列 HashSet LinkedHashSet TreeSet HashSet Concurrent源码系列 待完善 JVM(Java虚拟机) 类加载 垃圾回收算法 JavaConcurrent(Java并发系列) 【Java并发系列】

    Java并发包讲解

    3.hashMap , treeMap -- ConcurrentHashMap,ConcurentSkipListMap(key有序,支持更高并发) ## Concurrent同步工具类 countDownLatch CyclicBarrier Semaphore Exchanger ReenTrantLock ...

    javabitset源码-JerrySoundCode:杰瑞声码

    HashSet (done) TreeSet (done) LinkedHashSet (done) BitSet (done) Map HashMap (done) Hashtable (done) Properties (done) LinkedHashMap (done) IdentityHashMap (done) TreeMap (done) WeakHashMap (done) ...

    飞秋java源码-interviewNote:面试笔记

    源码分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and LinkedHashMap Java 并发编程  &gt; ​ 线程机制、线程通信、J.U.C组件、JMM、线程安全、锁优化 Java I/O  磁盘...

    Java-Interview:此项目为 Java 面试的汇总,多数是一些 Java 基础知识、底层原理、算法详解。也有上层应用设计,其中不乏一些大厂面试真题

    HashMap HashSet LinkedHashMap Java 多线程 多线程中的常见问题 synchronize 关键字原理 多线程的三大核心 对锁的一些认知 ReentrantLock 实现原理 ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 ...

    java-interview

    HashMap HashSet LinkedHashMap Java 多线程 多线程中的常见问题 synchronize 关键字原理 多线程的三大核心 对锁的一些认知 ReentrantLock 实现原理 ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 ...

    Java-Interview:https

    HashMap HashSet LinkedHashMap Java 多线程 多线程中的常见问题 synchronize 关键字原理 多线程的三大核心 对锁的一些认知 ReentrantLock 实现原理 ConcurrentHashMap 的实现原理 线程池原理 深入理解线程通信 ...

    java8集合源码分析-LearningNotes:Java笔记

    源码分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and LinkedHashMap 线程状态、线程机制、线程通信、J.U.C 组件、JMM、线程安全、锁优化 磁盘操作、字节操作、字符...

Global site tag (gtag.js) - Google Analytics