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

便利的邯郸网站建设网页框架

便利的邯郸网站建设,网页框架,小公司网站,wordpress微现场一、核心概念与用途 特性HashSetHashMap接口实现实现 Set 接口(存储唯一元素)实现 Map 接口(存储键值对)数据存储存储单个对象(元素唯一)存储键值对(键唯一,值可重复)典…

一、核心概念与用途

特性HashSetHashMap
接口实现实现 Set 接口(存储唯一元素)实现 Map 接口(存储键值对)
数据存储存储单个对象(元素唯一)存储键值对(键唯一,值可重复)
典型用途去重集合(如用户 ID 集合)键值映射(如缓存数据、配置项)

二、内部实现机制

  1. HashSet 的底层依赖
    HashSet 内部通过 HashMap 实现,元素作为 HashMap 的键,值使用固定虚拟对象:

    // HashSet源码关键字段
    private transient HashMap<E, Object> map;
    private static final Object PRESENT = new Object(); // 虚拟值// add方法实现
    public boolean add(E e) {return map.put(e, PRESENT) == null; // 键存在则返回false
    }
    
  2. HashMap 的存储结构
    基于哈希表(数组 + 链表/红黑树),键通过哈希函数计算索引:

    // HashMap存储结构(Java 8+)
    transient Node<K,V>[] table;
    static class Node<K,V> {final int hash;final K key;V value;Node<K,V> next;
    }
    

三、功能与方法差异

操作HashSet 方法HashMap 方法
添加元素add(E e)put(K key, V value)
删除元素remove(Object o)remove(Object key)
检查存在contains(Object o)containsKey(Object key)
获取元素无直接方法(需迭代器遍历)get(Object key)
容量相关size() 返回元素数量size() 返回键值对数量

四、性能与特性对比

维度HashSetHashMap
时间复杂度添加/删除/查找:平均 O(1),最差 O(log n)同左
内存开销较高(每个元素需额外存储虚拟值)较高(存储键值对)
允许 null 值允许一个 null 元素允许一个 null 键和多个 null
迭代顺序不保证顺序不保证顺序
线程安全非线程安全非线程安全

五、使用场景示例

  1. HashSet 适用场景

    • 用户登录去重

      Set<String> loggedInUsers = new HashSet<>();
      if (loggedInUsers.add(userId)) {// 首次登录处理
      }
      
    • 标签管理系统

      Set<String> uniqueTags = new HashSet<>(allTags);
      
  2. HashMap 适用场景

    • 缓存数据

      Map<String, Product> productCache = new HashMap<>();
      productCache.put(productId, product);
      
    • 配置项管理

      Map<String, String> configs = new HashMap<>();
      configs.put("timeout", "30");
      

六、线程安全解决方案

需求HashSet 方案HashMap 方案
同步包装Set<String> syncSet = Collections.synchronizedSet(new HashSet<>());Map<String, String> syncMap = Collections.synchronizedMap(new HashMap<>());
并发容器无直接替代,可包装 ConcurrentHashMap:Set concurrentSet = Collections.newSetFromMap(new ConcurrentHashMap<>());ConcurrentHashMap<String, String>

七、内存与 GC 影响

  • HashSet 内存占用
    每个元素需存储键(元素对象)和固定虚拟值(约 16 字节对象头),内存开销约为元素大小的 2 倍。

  • HashMap 内存占用
    存储键值对,每个节点额外包含哈希值、指针等元数据,内存开销更高。

优化建议

  • HashSet 使用 -XX:+UseCompressedOops 压缩指针(64 位 JVM 默认开启)
  • HashMap 预估初始容量,避免频繁扩容

八、扩展对比:LinkedHashSet vs LinkedHashMap

特性LinkedHashSetLinkedHashMap
实现方式继承 HashSet,内部使用 LinkedHashMap维护插入顺序/访问顺序的双向链表
有序性保证插入顺序可配置插入顺序或访问顺序(LRU)
性能损耗略高于 HashSet(维护链表指针)略高于 HashMap

九、总结

  • 核心区别HashSet 用于存储唯一元素集合,HashMap 用于键值映射。
  • 实现关联HashSet 基于 HashMap 实现,复用其键唯一性特性。
  • 选择策略
    • 需要唯一元素集合 → HashSet
    • 需要键值对存储 → HashMap
    • 需要有序 → LinkedHashSet/LinkedHashMap
    • 高并发场景 → ConcurrentHashMap 包装或专用并发容器

文章转载自:

http://VBtZrmgy.wqsjx.cn
http://hbVbXOy7.wqsjx.cn
http://01LkAKSs.wqsjx.cn
http://sjRsLGTG.wqsjx.cn
http://sPALxNvX.wqsjx.cn
http://SFRTCVGu.wqsjx.cn
http://bxvaTMLe.wqsjx.cn
http://fptdOlWX.wqsjx.cn
http://dvjPh13F.wqsjx.cn
http://BdsmiqVz.wqsjx.cn
http://zsE9syVn.wqsjx.cn
http://RXqXzbSx.wqsjx.cn
http://JPSCc9hN.wqsjx.cn
http://wqvMxPaX.wqsjx.cn
http://HKS06kIR.wqsjx.cn
http://AmX2ETm3.wqsjx.cn
http://A6w5k3PL.wqsjx.cn
http://jD7WzL0x.wqsjx.cn
http://PVuolw5G.wqsjx.cn
http://HklVk0Fy.wqsjx.cn
http://mFEo6IZw.wqsjx.cn
http://g24XUgqZ.wqsjx.cn
http://7s82OPM9.wqsjx.cn
http://JHoAT0RF.wqsjx.cn
http://nzpHQ7BQ.wqsjx.cn
http://7rdSGN1H.wqsjx.cn
http://b0GBw0jL.wqsjx.cn
http://FlD2TEQZ.wqsjx.cn
http://gxDd0gAG.wqsjx.cn
http://HAdQHhFX.wqsjx.cn
http://www.dtcms.com/wzjs/621918.html

相关文章:

  • 张家界建设信息网站泉州高端网站建设
  • 可以先做网站再开公司吗响应式网页源码
  • 做网站的服务器有什么作用推广做网站怎么样
  • 重庆网站建站公司无网站可以做cpc吗
  • 商务礼品网站模板2024年重启核酸
  • 欢乐海岸网站建设微网站开发流程
  • 前端特效网站做知乎网站的图片
  • 做游戏模板下载网站html格式的网站地图
  • 网站推广的技巧如何制作公司宣传片
  • 深圳安嘉建设有限公司网站外贸招聘网站
  • php网站开发毕业设计上海今天新闻发布会直播
  • 杭州品牌网站设计商城网站模板框架
  • 电商网站建设方案uc推广登录入口
  • 西宁网站建设维护国内做网站公司哪家好
  • 贵阳做网站找哪家好青岛网络平台
  • 广州市南沙建设局网站网上可以报警备案吗
  • 有实力的网站建设公司购物网站app开发
  • 做艺术文字的网站学习网站建设有前景没
  • 营销型网站特点app定制开发哪里找
  • 网站关键词库是怎么做的江苏省建设工程招标网站
  • 整合资源加强全市网站建设云梦网如何做网站
  • 便宜的网站建设网站网页
  • 专门做h网页游戏的网站免费提供ppt模板的网站
  • 购物网站的提交订单功能需要做唯一性约束怎么制作公众号文章
  • 梧州网站设计公司字节跳动现有员工人数
  • 广西网站建设企业网站推广的定义及方法
  • 资讯网站 整体ui网站建设流程服务
  • 微信做模板下载网站要维护公司的网站该怎么做
  • 南头专业外贸网站建设公司手机网站模板更改吗
  • 黄骅做网站的电话无限动力网站