网站建设方案书腾讯云,西部数码网站管理控制面板,wordpress友情链接设置,造价信息网官网Java核心篇之HashMap–day6
HashMap是一种键值对的数据结构#xff0c;以数组与链表的形式#xff08;key#xff1a;value#xff09;实现#xff0c;查询性能和添加性能很好。他是通过将key进行hashcode#xff08;#xff09;映射函数来找到表中对应的位置。
HashM…Java核心篇之HashMap–day6
HashMap是一种键值对的数据结构以数组与链表的形式keyvalue实现查询性能和添加性能很好。他是通过将key进行hashcode映射函数来找到表中对应的位置。
HashMap和Hashtable与LinkedHashMap以及TreeMap的区别 底层都是基于数组和链表来实现的 HashMap是非线程安全的HashTable是线程安全的修改数据的时候锁住整个Hashtable。 HashMap的键和值都允许有null值存在而HashTable则不行。 HashMap效率比HashTable的要高。 初始值大小 Hashtablesize为11扩容为2size1 HashMapsize为16扩容为2size2的n次幂 Hashtable是基于synchronized关键字锁住的是整个表而concurrentHashMap是基于lock操作这样的目的是保证同步的时候锁住的不是整个对象。 ConcurrentHashMap基于concurrentLevel划分出了多个Segment来对key-value进行存储从而避免每次锁定整个数组允许多个线程并发无阻塞的操作集合对象尽可能地减少并发时的阻塞现象。 LinkedHashMap基本和HashMap实现类似多了一个链表来维护元素插入的顺序因此维护的效率会比HashMap略低。但是因为有链表的存在遍历效率会高于HashMap。
LinkedHashMap和TreeMap 1.LinkedHashMap能够保持记录的插入顺序用iterator来遍历LinkedHashMap时先得到的记录是先插入的记录它包含了HashMap的其他特性。 2.TreeMap能够将它保存的记录根据键进行排序默认为升序。用iterator进行遍历的时候得到的记录都是排好序的。其键和值都不能为空。 3.HashSet是根据HashMap来实现的TreeSet是根据TreeMap来实现的只不过set用的是map的keymap的key和set的共性就是集合的唯一性其中TreeMap多了一个排序的功能。
HashSetTreeSetLinkedHashSet的区别 1.HashSet类似于HashMap至多只能有一个值为null存入的元素是无序的并且不能重复 2.LinkedHashSet至多只能有一个值为null元素严格按照放入的顺序排列 3.TreeSet不能有null值根据元素的自然顺序进行排序