>昆明教育培训网>昆明IT培训>昆明计算机等级考试培训>昆明电脑培训分享Java中常用的集.. 免费发布计算机等级考试培训信息
广告
热门浏览

昆明电脑培训分享Java中常用的集合类框架

更新时间:2019-06-03 09:13:58 信息编号:c319lkc5oa854b
  • 面议

  • 电脑培训,IT培训,云南Java培训

分享

详情介绍

服务项目
软件测试,软件开发
面向地区

昆明电脑培训分享Java中常用的集合类框架

  一、HashMap的概述
  
  HashMap可以说是Java中常用的集合类框架之一,是Java语言中非常典型的数据结构。
  
  HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射操作。昆明电脑培训发现存储的是对的映射,允许多个null值和一个null键。但此类不映射的顺序,特别是它不该顺序恒久不变。
  
    除了HashMap是非同步以及允许使用null外,HashMap 类与 Hashtable大致相同。
  
   此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代collection 视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。
  
  HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。
  
  通常,默认加载因子 (0.75) 在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本(在大多数 HashMap 类的操作中,包括 get 和 put 操作,都反映了这一点)。在设置初始容量时应该考虑到映射中所需的条目数及其加载因子,以便大限度地减少 rehash 操作次数。如果初始容量大于大条目数除以加载因子,则不会发生 rehash 操作。
  
  注意,此实现不是同步的。 如果多个线程同时访问一个HashMap实例,而其中至少一个线程从结构上修改了列表,那么它保持外部同步。这通常是通过同步那些用来封装列表的 对象来实现的。但如果没有这样的对象存在,则应该使用{@link Collections#synchronizedMap Collections.synchronizedMap}来进行“包装”,该方法好是在创建时完成,为了避免对映射进行意外的非同步操作。
  
  Map m = Collections.synchronizedMap(new HashMap(...));
  
  二、构造函数
  
  HashMap提供了三个构造函数:
  
  HashMap():构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
  
  HashMap(int initialCapacity):构造一个带初始容量和默认加载因子 (0.75) 的空 HashMap。
  
  HashMap(int initialCapacity, float loadFactor):构造一个带初始容量和加载因子的空 HashMap。
  
  这里提到了两个参数:初始容量,加载因子。这两个参数是影响HashMap性能的重要参数,其中容量表示哈希表中桶的数量,初始容量是创建哈希表时的容量,加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度,它衡量的是一个散列表的空间的使用程度,负载因子越大表示散列表的装填程度越高,反之愈小。对于使用链表法的散列表来说,查找一个元素的平均时间是O(1+a),因此如果负载因子越大,对空间的利用更充分,然而后果是查找效率的降低;如果负载因子太小,那么散列表的数据将过于稀疏,对空间造成严重浪费。系统默认负载因子为0.75,一般情况下我们是无需修改的。
  
  HashMap是一种支持快速存取的数据结构,要了解它的性能要了解它的数据结构。

相关推荐产品

留言板

  • 软件测试软件开发电脑培训IT培训云南Java培训
  • 价格商品详情商品参数其它
  • 提交留言即代表同意更多商家联系我
云南嘉荟教育咨询有限公司为你提供的“昆明电脑培训分享Java中常用的集合类框架”详细介绍,包括电脑培训价格、型号、图片、厂家等信息。如有需要,请拨打电话:18083818583。不是你想要的产品?点击发布采购需求,让供应商主动联系你。
“昆明电脑培训分享Java中常用的集合类框架”信息由发布人自行提供,其真实性、合法性由发布人负责。交易汇款需谨慎,请注意调查核实。