![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Map
文章平均质量分 50
Java码蚁
千千万万遍
展开
-
分析HashSet和TreeSet分别如何去重
HashSet的去重机制:hashCode() + equals() , 底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引,如果发现table索引所在的没有数据,就直接存放,如果有数据,就进行equals比较【遍历比较】,如果比较后为不同,则加入,反之,不加入。TreeSet的去重机制:如果你传入了一个Comparator匿名对象,就使用实现的compare去重,如果返回0,就认为是相同的元素/数据,就不添加,如果未传入一个Comparator匿名对象,则以你添加的对象实现的C原创 2022-08-02 13:12:14 · 330 阅读 · 1 评论 -
开发中如何选择集合实现类
无序Hashset【底层是HashMap,维护了一个哈希表即(数组+链表+红黑树)】键无序HashMap【底层是哈希表jdk7数组+链表,jdk8数组+链表+红黑树】插入顺序和取出顺序一致LinkedHashSet,维护数组+双向链表。改查多ArrayList【底层维护Object类型的可变数组】增删多LinkedList【底层维护了一个双向链表】1.先判断存储的类型(一组对象[单列]或一组键值对[双列])2.一组对象[单列]collection接口。3.一组键值对[双列]Map。......原创 2022-08-01 18:26:55 · 104 阅读 · 0 评论 -
Hashtable简述
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。......原创 2022-08-01 16:57:00 · 1031 阅读 · 0 评论 -
HashMap底层机制及源码剖析
/如果table的索引位置key的hash和新的key的hash值相同,并满足(table现有的结点的key和准备添加的key是同一个对象||equals返回真),就认为不能加入新的k-v。/取出hash值对应的table的索引位置的Node,如果为null,就直接把加入的k-v,创建成一个Node,加入该位置即可。if((e=p.next)==null){//如果整个链表,没有和他相同,就加到该链表的最后。//如果当前的table的已有的Node是红黑树,就按照红黑树的方式处理。.........原创 2022-08-01 14:33:24 · 240 阅读 · 0 评论 -
Map接口遍历方法
代码】Map接口遍历方法。原创 2022-07-31 16:19:00 · 136 阅读 · 0 评论