java吧 关注:1,250,063贴子:12,732,429
  • 12回复贴,共1

java 的 hashmap为什么查询比较快?hashset

只看楼主收藏回复

java 的 hashmap为什么查询比较快?hashset 怎么保证集合元素不重复?



IP属地:广东来自Android客户端1楼2018-08-18 22:00回复
    hashset就是个hashmap,只是value值是个空对象


    IP属地:上海来自Android客户端2楼2018-08-19 01:29
    回复
      Hashmap由数组加链表构成,因为数组的查询速度是最快的,通过键的hashcode&(数组容量–1)得出数组的下标,顺势得到该下标下的链表,遍历链表。jdk8中改成了如果链表长度超过8,链表会变成红黑树


      IP属地:广东来自Android客户端3楼2018-08-19 02:17
      收起回复
        Hashmap多线程的问题


        IP属地:北京来自iPhone客户端5楼2018-08-19 19:08
        回复
          我想知道第二张和第一张图片有什么关联么


          来自Android客户端6楼2018-08-21 00:11
          回复
            先用Object.hashCode方法比较两个对象的hash,如果hash不相等,根据Java的协定,用equals比较两个对象肯定是不相等的;如果hash相等,那么可能相等但也可能不相等,再调用Object.equals方法去比


            IP属地:美国来自iPhone客户端7楼2018-08-21 08:29
            收起回复
              数组结构,set底层调用map


              IP属地:江苏来自Android客户端8楼2018-08-21 17:16
              回复