美文网首页
HashMap相关

HashMap相关

作者: 萝卜枣 | 来源:发表于2018-04-20 08:47 被阅读0次

https://www.jianshu.com/p/45fa4e80b631
HashMap与HashTable
都实现了Map接口,但决定用哪一个之前先要弄清楚他们之间的分别,主要区别有:线程安全性,同步(synchronization),以及速度。

HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接收为null的键值和值),而hashtable则不行)。

HashMap是非synchronized,而hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。
由于Hashtable是线程安全的也是同步的,所以在单线程环境下它比HashMap慢。如果不需要同步,只需要单一线程,则使用HashMap性能要好过Hashtable。

HashMap和HashSet的区别
HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为set接口,list接口和Queue接口。它们有各自的特点,set的集合里不允许对象有重复的值,list允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法。
HashSet实现了set接口,它不允许集合中有重复的值,当我们提到HashSet时,第一件事就是在将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有存储相等的对象。若没重写,将会使用默认方法。
add()

HashMap实现了Map接口,Map接口对键值对进行映射。Map中不允许重复的键。Map接口有两个基本的实现,HashMap和TreeMap。TreeMap保存了对象的排列次序,而HashMap则不能。HashMap允许键和值为null。
put()

区别:
HashMap实现了Map接口,HashSet实现了Set接口
HashMap存储键值对,HashSet仅仅存储对象
使用put方法将元素放入map中,使用add方法将元素放入set中
HashMap使用唯一键来获取对象,比较快

相关文章

  • HashMap相关

    HashMap容量为2次幂的原因 hash方法可以计算一个对象的hashcode,我们不用过于关注 但是他计算ha...

  • HashMap相关

    HashMap是数组+链表 1.HashMap不是线程安全,为什么不是线程安全的呢? 多线程put,多线程reha...

  • HashMap相关

    HashMap、LinkedHashMap、ConcurrentHashMap、ArrayMap、SparseMa...

  • HashMap相关

    hash概念 hash:是一种信息摘要算法,它还叫做哈希,或者散列。我们平时使用的MD5中的公私钥验证都属于Has...

  • HashMap相关

    https://www.jianshu.com/p/45fa4e80b631HashMap与HashTable都实...

  • HashMap相关

    HashMap的底层实现原理,get的过程发生了什么 HashMap是用来存储key-value键值对的集合,每一...

  • ConcurrentHashMap原理分析

    相关的HashMap java里面有HashMap、HashTable 和 ConcurrentHashMap。其...

  • JDK1.8中HashMap底层实现原理

    接下来会从以下几个方面介绍 HashMap 源码相关知识: 1、HashMap 存储结构 2、HashMap 各常...

  • hashmap相关问题

    概述 java8对java7中hashmap的实现进行了一部分修改,最大的修改在于利用了红黑树,jdk7使用数组+...

  • java源码分析之HashMap(三)

    相关文章java源码分析之HashMap(一)java源码分析之HashMap(二)https://blog.cs...

网友评论

      本文标题:HashMap相关

      本文链接:https://www.haomeiwen.com/subject/akopcftx.html