当前位置: 首页 > news >正文

做网站和做商城的区别在哪里专业的做pc端网站

做网站和做商城的区别在哪里,专业的做pc端网站,wordpress中文美食主题,平面设计师个人网站## 深入分析 Java 中的 HashSet 源码 HashSet 是 Java 集合框架中的一个重要类#xff0c;它基于哈希表实现#xff0c;用于存储不重复的元素。HashSet 允许 null 元素#xff0c;并且不保证元素的顺序。本文将详细分析 HashSet 的源码#xff0c;包括其数据结构、构造方法…## 深入分析 Java 中的 HashSet 源码 HashSet 是 Java 集合框架中的一个重要类它基于哈希表实现用于存储不重复的元素。HashSet 允许 null 元素并且不保证元素的顺序。本文将详细分析 HashSet 的源码包括其数据结构、构造方法、核心操作、内部实现机制等。 ### 1. HashSet 的基本数据结构 HashSet 是基于 HashMap 实现的每个 HashSet 内部都维护了一个 HashMap 实例用于存储元素。HashSet 的元素作为 HashMap 的键所有键对应的值为一个常量对象。 HashSet 类的基本结构如下 java public class HashSetE extends AbstractSetE         implements SetE, Cloneable, java.io.Serializable {     static final long serialVersionUID -5024744406713321676L; // 底层使用的 HashMap     private transient HashMapE, Object map; // HashSet 中所有键对应的值     private static final Object PRESENT new Object(); // 默认构造方法     public HashSet() {         map new HashMap();     } // 其他构造方法和方法定义 } - map底层使用的 HashMap 实例用于存储元素。 - PRESENTHashMap 中所有键对应的值这是一个常量对象。 ### 2. 构造方法 HashSet 提供了多个构造方法以满足不同的初始化需求。 #### 2.1 默认构造方法 java public HashSet() {     map new HashMap(); } 默认构造方法使用默认初始容量16和加载因子0.75创建一个空的 HashMap 实例。 #### 2.2 指定初始容量和加载因子的构造方法 java public HashSet(int initialCapacity, float loadFactor) {     map new HashMap(initialCapacity, loadFactor); } 此构造方法允许用户指定 HashMap 的初始容量和加载因子。 #### 2.3 指定初始容量的构造方法 java public HashSet(int initialCapacity) {     map new HashMap(initialCapacity); } 此构造方法允许用户指定 HashMap 的初始容量加载因子使用默认值 0.75。 #### 2.4 从另一个集合创建 HashSet java public HashSet(Collection? extends E c) {     map new HashMap(Math.max((int) (c.size() / .75f) 1, 16));     addAll(c); } 此构造方法从另一个集合创建 HashSet并将集合中的所有元素添加到 HashSet 中。 ### 3. 核心操作方法 #### 3.1 添加元素 HashSet 提供了添加元素的方法 add(E e) java public boolean add(E e) {     return map.put(e, PRESENT) null; } - add(E e)将元素 e 添加到 HashSet 中。实际上是将元素 e 作为键PRESENT 作为值存入 HashMap 中。如果键 e 已存在则返回 false否则返回 true。 #### 3.2 删除元素 HashSet 提供了删除元素的方法 remove(Object o) java public boolean remove(Object o) {     return map.remove(o) PRESENT; } - remove(Object o)从 HashSet 中删除指定的元素 o。如果 HashMap 中存在键 o则删除并返回 true否则返回 false。 #### 3.3 判断是否包含元素 HashSet 提供了判断是否包含某个元素的方法 contains(Object o) java public boolean contains(Object o) {     return map.containsKey(o); } - contains(Object o)判断 HashSet 中是否包含指定的元素 o。实际上是调用 HashMap 的 containsKey(Object key) 方法。 #### 3.4 清空 HashSet HashSet 提供了清空所有元素的方法 clear() java public void clear() {     map.clear(); } - clear()清空 HashSet 中的所有元素。实际上是调用 HashMap 的 clear() 方法。 ### 4. 内部实现机制 #### 4.1 HashMap 的工作原理 为了更好地理解 HashSet 的实现有必要了解 HashMap 的工作原理。HashMap 是基于哈希表的数据结构通过散列函数将键映射到数组中的位置从而实现快速查找、插入和删除操作。 #### 4.2 HashMap 的核心操作 - **计算哈希值**HashMap 使用键的 hashCode() 方法计算哈希值并进一步对哈希值进行处理以减少哈希冲突。 - **处理哈希冲突**当两个不同的键映射到同一个位置时HashMap 使用链地址法即在数组的每个位置存储一个链表处理冲突。 - **扩容**当 HashMap 的负载因子超过阈值时默认 0.75HashMap 会进行扩容将数组大小增加一倍并重新分配所有键值对的位置。 #### 4.3 HashSet 中的元素存储 在 HashSet 中所有元素都作为 HashMap 的键存储在哈希表中。由于 HashMap 的键不允许重复因此 HashSet 中的元素也是唯一的。 ### 5. 迭代器支持 HashSet 实现了 Iterable 接口提供了支持迭代的功能 java public IteratorE iterator() {     return map.keySet().iterator(); } - iterator()返回一个迭代器用于遍历 HashSet 中的元素。实际上是调用 HashMap 的 keySet() 方法返回键集合的迭代器。
http://www.w-s-a.com/news/176114/

相关文章:

  • 网站建设最常见的问题建设银行网站机构
  • 网站集群建设相关的招标南通seo网站建设费用
  • 网络培训的网站建设能够做二维码网站
  • 网站类游戏网站开发wordpress 文章首标点
  • 徐州网站建设熊掌号免费推广网站入口2020
  • 网站建设有前途长春高铁站
  • 做网站网课阿里云域名查询系统
  • saas建站平台有哪些简述网站建设基本流程答案
  • 个人怎么做网站网站浏览思路
  • 网站建设里的知识长沙网络营销公司
  • 网站建设与维护大作业pc网站转换成微网站
  • php网站开发经典教材东莞网站开发
  • 教育培训手机网站模板下载跨境电商培训哪家最好
  • 网站开发淄博网站被降权会发生什么影响吗
  • 网站开发常用的语言东城手机网站制作
  • 微小店网站建设平台手机优化加速有什么用
  • 沈阳酒店企业网站制作公司竞价网站怎么做seo
  • 中山企业网站多少钱学网站建设的好处
  • 做官网网站哪家公司好jianux wordpress
  • 插件素材网站新站seo优化快速上排名
  • 网站注销主体填写原因asp响应式h5网站源码下载
  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件