HashMap源码分析
HashMap源码分析
木易三水良
这个作者很懒,什么都没留下…
展开
-
10、JDK1.8HashMap源码分析系列文章(remove、removeNode、removeTreeNode、balanceDeletion)
1、remove(Object key) 2、removeNode(int hash, Object key, Object value, boolean matchValue, boolean movable) 3、removeTreeNode(HashMap<K,V> map, HashMap.Node<K,V>[] tab, boolean movable) 4、remove(Object key, Object value) 5、clear()...原创 2020-08-12 09:50:50 · 967 阅读 · 11 评论 -
9、JDK1.8HashMap源码分析系列文章(replace、replaceAll)
1、replace(K key, V oldValue, V newValue) /** * map中指定key存在并且对应的值与指定的旧值相等的时候,才替换成功,否则替换失败 * * @param key key * @param oldValue 旧值 * @param newValue 新值 * @return boolean * @Author原创 2020-08-04 17:29:37 · 411 阅读 · 0 评论 -
8、JDK1.8HashMap源码分析系列文章(getNode、getTreeNode、find)
1、get(Object key) 2、getNode(int hash, Object key) 3、containsKey(Object key) 4、getOrDefault(Object key, V defaultValue)原创 2020-08-04 16:57:10 · 220 阅读 · 0 评论 -
7、JDK1.8HashMap源码分析系列文章(putMapEntries、tableSizeFor、hash、capacity)
final void putMapEntries(Map<? extends K, ? extends V> m, boolean evict) { // 获取待转移map的数据大小 int s = m.size(); // 如果s>0,说明存在数据,需要copy,否则不存在数据机型copy if (s > 0) { // 如果table为null(当前m.原创 2020-08-10 18:05:37 · 271 阅读 · 2 评论 -
6、JDK1.8HashMap源码分析系列文章(putVal)
final void putMapEntries(Map<? extends K, ? extends V> m, boolean evict) public V put(K key, V value) public V putIfAbsent(K key, V value) private void readObject(java.io.ObjectInputStream s) final V putVal(int hash, K key,...原创 2020-08-04 14:25:19 · 171 阅读 · 0 评论 -
4、JDK1.8HashMap源码分析系列文章(split、untreeify、resize)
1、resize原创 2020-07-31 17:02:00 · 545 阅读 · 0 评论 -
5、JDK1.8HashMap源码分析系列文章(treeifyBin,treeify)
1、TreeNode的静态方法treeify() 2、树化方法treeifyBin()原创 2020-08-03 10:56:02 · 350 阅读 · 0 评论 -
3、JDK1.8HashMap源码分析系列文章(moveRootToFront、checkInvariants)
1、checkInvariants 2、moveRootToFront原创 2020-07-30 17:57:37 · 400 阅读 · 0 评论 -
1、JDK1.8HashMap源码分析系列文章(comparableClassFor、compareComparables、tieBreakOrder)
该类方法主要分部在元素的添加(节点树化的相关方法)、查找中,主要涉及以下三个方法: 1、comparableClassFor /** * 如果一个对象实现了了Comparable<C>,就返回该类,否则返回null * * @param x 需要判断的对象 * @return java.lang.Class<?> * @Author muyi * @Dat原创 2020-07-30 17:56:45 · 191 阅读 · 0 评论 -
2、JDK1.8HashMap源码分析系列文章(rotateLeft、rotateRight、balanceInsertion)
1、左旋方法 /** * 左旋 * * @param root 整个红黑树的根节点 * @param p 旋转的根节点 * @return com.example.bd.javaee.hashmap.HashMap.TreeNode<K, V> 旋转完成之后的根节点 * @Author yangLang * @Date 17:07 2020/7/原创 2020-07-30 17:57:22 · 331 阅读 · 0 评论