`

java-HashSet源码学习

 
阅读更多

HashSet: 不支持多线程

               不允许重复【重复会覆盖之前的值】

               允许为null

初始化:底层使用HashMap来管理

 private transient HashMap<E,Object> map; 
 public HashSet(Collection<? extends E> c) {
 
	map = new HashMap<E,Object>(Math.max((int) (c.size()/.75f) + 1, 16));
 
        addAll(c);
 
   }

 其add方法是使用HashMap的方法实现

   public boolean add(E e) {
	return map.put(e, PRESENT)==null;
    }

 其remove也是使用HashMap的方法实现

   public boolean remove(Object o) {
 return map.remove(o)==PRESENT;
    }

 

分享到:
评论

相关推荐

    java-learn-源码.rar

    通过分析源码,我们可以学习如何有效地存储和操作数据,以及何时使用ArrayList、LinkedList、HashSet、HashMap等不同类型的集合。 4. **异常处理** 异常处理是Java程序健壮性的重要保障。源码可能包含try-catch-...

    java-basics-源码.rar

    在Java编程领域,理解基础至关重要,因为它是进阶学习和实际开发的基石。"java-basics-源码.rar"文件显然包含了关于Java基础知识的源代码示例,这为我们提供了深入理解语言机制的机会。让我们逐一探讨这些核心概念。...

    java-homeworks-源码.rar

    【标题】"java-homeworks-源码.rar" 提供的是一份关于Java编程的作业源代码集合,这可能是某个课程或项目的学习资源。这个压缩包可能包含了多个Java项目的源代码,每个项目可能代表了一个特定的编程概念或技术的实践...

    data-structures-java-源码.rar

    通过对这些源码的学习,开发者不仅能掌握数据结构的基本概念,还能深入了解Java语言在实现这些数据结构时的优化策略,从而提升编程效率和程序性能。对于希望深入研究Java和算法的程序员来说,这是一个不可多得的参考...

    Candidato-java-源码.rar

    这个源码可能是一个项目、一个库或者一个框架的实现,对于学习Java编程或者研究特定功能的开发者来说,是非常宝贵的资源。由于标签部分为空,我们无法直接得知这个源码的具体用途或特性,但我们可以根据Java源码的...

    Java-Sokoban-Game-源码.rar

    通过深入分析这个Java Sokoban游戏的源码,我们可以学习到如何在Java中构建一个完整的交互式游戏,包括图形界面设计、逻辑控制、输入处理和错误处理等多个方面。这对于提升我们的Java编程能力和游戏开发技巧是非常有...

    自学资料,自学练习、 JAVA-SE-学习 全面打基础练习和文档集合.合集准备 Java学习资料

    4. **集合框架**:Java集合框架包括接口(如List、Set、Queue)和实现类(如ArrayList、LinkedList、HashSet、HashMap等),学习者应掌握它们的使用和选择原则。 5. **输入输出流**:I/O流用于处理数据的读写,包括...

    ADVANCE_JAVA-源码.rar

    ADVANCE_JAVA-源码.rar 是一个压缩包文件,其中包含的源码是针对高级Java编程的学习资源。Java作为一种广泛应用的编程语言,其高级特性对于开发者来说至关重要,这包括但不限于多线程、反射、注解、集合框架的深入...

    ThinkinginJava之Set接口、HashSet源码学习.pdf

    总之,Set接口和HashSet在Java集合框架中扮演着重要的角色,它们提供了一种有效存储和管理不重复元素的方式。通过深入理解其源码和工作原理,开发者可以更好地利用这些工具来解决实际编程问题。

    java72-java-advance源代码.zip

    描述中的"java72-java-advance源代码.zip"与标题一致,没有提供额外的信息,但可以推测这个压缩包可能包含了一个或多个Java项目的源代码,用于学习或者实践高级Java编程技巧。 【标签】 "java"标签明确了这个内容与...

    基于Java的实例源码-哈希计算工具 Java-hash.zip

    哈希计算工具是编程中一个重要的...学习和理解这个实例源码,开发者不仅可以掌握如何在Java中使用哈希算法,还能了解到如何处理哈希碰撞、集成外部库以及组织项目的结构。这对于提高编程技能和解决实际问题都非常有益。

    Java程序设计-案例源码.rar

    【Java程序设计-案例源码】是一份针对Java编程学习的教学资料,包含了谢先伟老师的实践案例代码。这个压缩包的目的是为了帮助学生和初学者深入理解Java编程语言,通过实际的代码示例来增强其编程技能。在这个压缩包...

    javaBook-src-源码.rar

    通过这些源码,学习者可以深入研究各种Java编程技术,同时也可以看到实际项目中的代码组织和最佳实践。如果配合书籍阅读,将极大地提高学习效率和实战能力。记得在使用这些源码时,要遵循版权规定,并尝试自己动手...

    java-data-struct.rar_数据结构 java_数据结构源码

    "java-data-struct.rar_数据结构 java_数据结构源码"这个压缩包文件包含了用Java实现的数据结构的相关代码,对于学习和理解数据结构的实现具有很高的参考价值。 1. **链表(LinkedList)**:链表是一种线性数据结构...

    HeadFirst-Java源码

    4. **集合框架**:Java集合框架是处理数据的重要工具,源码可能会演示ArrayList、LinkedList、HashSet、HashMap等集合类的使用。 5. **输入/输出流**:Java的IO流用于读写文件或网络数据,源码中可能包含FileReader...

    基于java语言开发的提醒簿程序源码

    4. **集合框架**:为了存储和管理提醒,程序可能会使用Java集合框架,如ArrayList、LinkedList、HashSet或HashMap等。这将涉及如何选择合适的集合类型、遍历集合以及操作集合对象的方法。 5. **日期和时间处理**:...

    java16天从入门到精通 畅购-讲师源码md课件.zip

    总之,这个16天的Java学习计划全面覆盖了初级到进阶的关键知识点,结合实际的源码示例,将使初学者能够迅速掌握Java编程,并具备解决实际问题的能力。在学习过程中,建议读者不仅要理解理论,更要动手实践,不断编码...

    Head-First-Java-source.zip

    《Head First Java》是一本非常受欢迎的Java编程学习书籍,其源码包"Head-First-Java-source.zip"为读者提供了书中示例代码的详细实现,帮助读者更好地理解和实践Java编程。这个压缩包包含了两部分资源:一本是...

    Java-study 复习java.zip

    “Java_study-master”可能是一个项目或者教程的源码目录,包含各种示例代码和练习,用于帮助学习者巩固和实践Java编程技能。通过阅读和运行这些代码,你可以更深入地理解和掌握Java语言的核心概念和技术。

    计算机软件-编程源码-精通Java2(PDG).zip

    【标题】"精通Java2(PDG)"是一份关于深入学习Java编程语言的资源包,它旨在帮助程序员提升在Java 2平台上的技能和理解。PDG通常代表Program Design Guide,暗示这是一份指导程序员如何设计高效、可维护的Java代码的...

Global site tag (gtag.js) - Google Analytics