Android中你还在使用HashMap<Integer,Object>吗? 众所周知,当我们要维护一个整型到对象的映射关系的时候,想定义一个Map<int,Object>会报错,我们必须使用Ma…
分类:HashMap
对象作为HashMap的键
写这篇文章起源于一道面试题,如何将自定义的类对象作为key存储到HashMap中,即考虑怎么判断key的唯一性。 首先,我们看以下HashMap中put(…)方法的源码: public V put(K key…
LinkedHashMap中的accessOrder
在Android-28中查看LinkedHashMap的源码: 我们发现LinkedHashMap的构造函数中比起父类HashMap多了一个accessOrder的东西,且默认accessOrder的值为false,只有…
java8对Hashmap的改进
先推荐一个看java源码的网站 grepcode.com 提供各种不同版本的源码在线查看和下载,而且有语法高亮,函数跳转,简单的注释,非常适合学习。良心推荐,java学习必备。 PS:这篇只是简单总结了一下JDK8里ha…
Java 集合 HashMap VS HashTable
更多 Java 集合类方面的文章,请参见文集《Java 集合类》 Java 集合 Java 集合实际上是多个 引用变量 组成的集合,这些引用变量指向实际的对象 并不会真正地将对象放入集合中 Map.Entry 为 Map…
无锁 HashMap 的原理与实现
更多 Java 集合类方面的文章,请参见文集《Java 集合类》 最近看到了一篇文章 无锁HASHMAP的原理与实现,很受用,做一些笔记。 Hashtable Collections.synchronizedMap Co…
HashMap和HashTable源代码分析
哈希表是一种能够进行快速查找且能够支持高效插入的数据结构,JAVA已经有多个不同的类实现了哈希表,在日常应用中,我们经常会使用哈希表存储一些数据,通过get和push方法实现数据的获取和存储。 先简单看看一些简单的区别 …
理解ConcurrentHashMap的实现原理
HashMap的并发问题 Java7 在Java7上,HashMap扩容Rehash的过程中,可能出现循环链表导致死循环的情况: Java7在Rehash时采用了倒序链表,因为Java7在Rehash中向链表插入Entr…
LinkedHashMap实现LRU原理解析
LRU介绍 LRU是Least Recently Used 最近最少使用算法。是一种常用的内存管理的页面置换算法。 计算机中用缓存来存放以前读取的数据,而不是直接丢掉,这样,再次读取的时候,可以直接在缓存里面取,而不用再…
面试技巧之HashMap VS HashTable
HashMap和HashTable有什么不同?在面试和被面试的过程中,我问过也被问过这个问题,也见过了不少回答,今天决定写一写自己心目中的理想答案。 JDK每一版本都在改进。本文讨论的HashMap和HashTable基…
java中==和equals和hashCode的区别
关于==: 如果是Java基本数据类型,==就是值的比较,比如:int a == int b;如果是对象比如 User a== User b;则比较的是对象a和b的地址; 关于equal和hashCode: equal …
HashMap初始容量和扩容
《阿里巴巴Java开发手册》中对于HashMap有推荐用法 那么HashMap是如何扩容的呢?通过查阅源码可以看出 static final float DEFAULT_LOAD_FACTOR = 0.75f; publ…