- 浏览: 62770 次
- 性别:
- 来自: 成都
文章分类
最新评论
//先看构造函数 public HashSet() { map = new HashMap<>(); } public HashSet(int initialCapacity) { map = new HashMap<>(initialCapacity); } public HashSet(int initialCapacity, float loadFactor) { map = new HashMap<>(initialCapacity, loadFactor); } //这个构造方法不是public的,仅用于LinkedHashSet. HashSet(int initialCapacity, float loadFactor, boolean dummy) { map = new LinkedHashMap<>(initialCapacity, loadFactor); } //新增 PRESENT代表一个对象(虚拟对象) public boolean add(E e) { return map.put(e, PRESENT)==null; } public boolean contains(Object o) { return map.containsKey(o); } public int size() { return map.size(); } public boolean isEmpty() { return map.isEmpty(); } public boolean remove(Object o) { return map.remove(o)==PRESENT; } public void clear() { map.clear(); } public Iterator<E> iterator() { return map.keySet().iterator(); } /** 总结:HashSet低层使用HashMap实现,通过HashMap的key不允许重复来保证元素不能重复。 另外LinkedHashSet继承了HashSet.低层使用使用的LinkedHashMap实现。可以保证Set集合在插入时候的顺序。 */
发表评论
-
读Collections源码
2017-10-11 14:53 272//一个操作集合的工具类,里面全部都是静态方法。 / ... -
读EnumSet源码
2017-10-06 18:02 328//一个基于枚举的Set,其效率在大多数时候都比Has ... -
读EnumMap源码
2017-10-06 15:23 400//一个key是枚举类型的map,速度基本会比hashMa ... -
读IdentityHashMap源码
2017-10-06 11:11 376//和HashMap的主要区别在于判断key的相等采用的是 ... -
读Stack源码
2017-10-05 10:14 295//一个堆栈结构的集合(先进后出)继承于Vector / ... -
读Properties
2017-10-03 23:02 0//一个继承于Hashtable的键值对。 //先看 ... -
读WeakHashMap源码
2017-09-28 17:06 358//一个基于弱引用的Map对象 //先看构造函数 ... -
读ArrayDeque源码
2017-09-26 13:38 276//一个双端队列 比stack ... -
读TreeMap源码
2017-09-13 11:21 377//一个基于二叉红黑树实现的map //关于红黑树htt ... -
读LinkedList源码
2017-08-29 10:49 369//List的链表实现,先看构造函数 public L ... -
读LinkedHashMap源码
2017-08-28 11:03 492//LinkedHashMap继承了HashMap,他和H ... -
读ArrayList源码
2017-08-26 16:30 302//先看构造函数 public ArrayList() ... -
读HashMap源码
2017-08-24 13:37 374//先看构造函数 public HashMap() { ... -
读priorityQueen源码
2017-08-07 10:47 366//先看构造方法。 public PriorityQue ... -
TreeSet集合的体系架构
2017-04-19 16:32 305... -
TreeMap集合的体系架构
2017-04-19 16:29 292... -
ImmutableSortedSet集合的实现体系架构
2017-04-19 16:32 258... -
ImmutableSortedMap集合的体系架构
2017-04-20 17:50 543... -
ImmutableSet集合的实现体系架构
2017-04-19 16:28 241... -
ImmutableMap集合的体系架构
2017-04-19 16:28 417...
相关推荐
Lambda表达式是JDK1.8的一个重要特性,它简化了对匿名内部类的使用,使得代码更加简洁和易读。通过使用 Lambda,我们可以将函数作为参数传递,或者将函数直接定义为方法体。这在处理集合操作时尤其有用,配合Stream ...
在Java中,这些数据结构可以通过内置类如ArrayList、LinkedList、Stack、Queue、HashSet和HashMap等来实现。例如,`Graph.java`文件很可能包含了图的实现,可能包括邻接矩阵或邻接表等表示方法,以及图的遍历算法如...
首先,C#(读作"C sharp")是一种面向对象的编程语言,由微软公司为.NET框架开发,广泛应用于Windows应用程序、Web应用程序、游戏开发(尤其是Unity引擎)等领域。它具有类型安全、性能高效、可维护性强等特点。 1....
C#(读作"C sharp")是由微软公司开发的一种面向对象的编程语言,它被设计用于构建Windows应用程序、网络服务、移动应用以及游戏等。C#语言以其简洁、类型安全和性能高效的特点,深受开发者的喜爱。它吸收了C++和...
源码,即编程语言的原始代码,是程序员用人类可读的形式编写的程序,未经过编译器转换成机器语言。在Java中,源代码以.java文件的形式存在。通过阅读和分析源码,我们可以了解程序的设计思路、实现方法以及编程技巧...
在Java编程领域,源码是程序设计的基础,它由程序员编写,用人类可读的语言描述了软件如何运行和处理数据。通过分析源码,我们可以学习到许多关于编程技巧、设计模式以及特定问题的解决方案。 【描述】"Samplelq_...
易语言的核心理念是“易学、易用、易读、易写”。它的语法结构直观,采用汉字命名函数和变量,如“打开文件”、“读取文本”等,使得初学者能够快速理解代码含义。了解易语言的基本语法和常用命令是使用此源码的...
### HashSet源码分析 1. **构造器**:HashSet提供了多个构造器,可以创建默认容量的HashSet,指定容量和负载因子的HashSet,或者带有一个初始集合的HashSet。 2. **add(E e)**:向HashSet添加元素时,实际上是将...
ArrayList、LinkedList、HashSet、HashMap等是常用的实现类。 5. **输入/输出(I/O)**:Java的I/O流系统允许读写文件、网络通信和其他数据源。InputStream、OutputStream、Reader、Writer等是基础类,而...
1. **代码规范**:遵循一定的编码规范,如命名规则(PascalCase或camelCase),注释标准,以及统一的空格和缩进,可以使代码更易读,团队合作更顺畅。 2. **设计模式**:了解并熟练运用常见的设计模式(如工厂模式...
10. **源码分析**:书中包含的源码分析部分,可以帮助读者更好地理解实际项目中如何应用上述原则和技巧,提升实战能力。 总之,《编写高质量代码:改善Java程序的151个建议》是一本实用的Java编程指南,无论你是...
- 源码分析:通过阅读Java标准库中数据结构和算法的源码,可以深入理解其实现原理和优化技巧。 - 工具辅助:使用IDE(如Eclipse、IntelliJ IDEA)的调试功能,可以帮助分析和验证算法的执行过程。 6. **实践应用*...
- 集合框架是Java中用于存储和操作对象的工具,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)。 - 泛型的引入增强了集合框架的类型安全,防止了运行时类型转换异常...
3. **集合框架**:Java集合框架包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。通过源码,你可以学习如何有效地存储和操作数据。 4. **异常处理**:Java异常处理是通过...
4. **集合框架**:Java的集合框架包括ArrayList、LinkedList、HashSet、HashMap等,源码将展示它们的使用方法和性能差异。 5. **泛型**:泛型为编写类型安全的代码提供了便利,源码中会体现泛型类和泛型方法的应用...
在Java编程中,源码是程序员用人类可读的语言编写的程序文本,它被编译成计算机可以执行的机器代码。通过查看和分析这些源码,学习者可以理解作者如何应用Java语法、设计模式以及最佳实践来解决问题。源码中的注释...
在Java编程中,源码是程序的基本组成部分,它是由开发者编写的用人类可读的语言描述计算机执行任务的文本文件。理解并阅读源码对于学习任何编程语言都至关重要。Java的源代码通常以.java为扩展名,并通过Java编译器...
它旨在引导学习者通过阅读和分析JDK源码来深入理解集合类的工作原理,从而在日常编程工作中能够更合理地使用和选择合适的集合实现。同时,本指南也强调了集合框架在Java编程中的广泛应用,比如在保存临时数据、管理...
这个集合类继承自AbstractSet,但是不同于HashSet,它的内部实现是基于CopyOnWriteArrayList,而不是哈希表。这使得CopyOnWriteArraySet在并发环境下的性能表现有其独特之处。 CopyOnWriteArraySet的数据结构与...
- `CopyOnWriteArrayList`和`CopyOnWriteArraySet`:适用于读多写少的场景,线程安全。 7. **集合操作** - `add()`、`remove()`:添加和移除元素。 - `contains()`、`equals()`:检查元素是否存在或集合是否相等...