自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 解决新能源汽车充电桩数量不足和充电时间过长的问题的思路

本文提出汽车充电宝的概念,用于解决目前新能源汽车充电不方面的问题,尤其节假期高速上

2022-04-06 17:13:21 1181

原创 HashMap (jdk1.8)HashIterator抽象类注释

抽象类HashIterator,HashMap中的迭代器,都来自于HashIterator迭代器abstract class HashIterator { Node<K,V> next; // next entry to return,下一个节点 Node<K,V> current; // current entry 当前节点 int expectedModCount; // for fast-fail .

2021-08-11 17:52:07 243

原创 HashMap (jdk1.8) forEach()、replaceAll()、 clone()、capacity()方法注释

这几个方法都比较简单,具体功能见方法中的注释1.forEach() /* * 遍历hashMap执行自定义函数action的功能 * */ @Override public void forEach(BiConsumer<? super K, ? super V> action) { HashMap.Node<K,V>[] tab;//定义Node类型的数组tab,存放hashMap中的元素; if (actio

2021-08-03 15:40:27 273

原创 HashMap (jdk1.8)compute()方法注释

computeIfAbsent 是实现Map接口中的方法,功能如:/* * compute功能:给定的key在hashMap中存在时,如果remappingFunction的apply()执行结果为null, * 则删除节点,不为null,则用apply()执行结果的值替换当前key的value; * 如果给定的key在hashMap中不存在时,如果remappingFunction的apply()执行结果为null,直接return v,此时v=null; * 如果r...

2021-08-02 11:47:28 276

原创 HashMap (jdk1.8)computeIfPresent()方法注释

computeIfAbsent 是实现Map接口中的方法,功能如:/* * computeIfPresent功能:给定的key在hashMap中存在时,执行BiFunction函数的apply()方法 * 如果apply()返回值为null,则删除hashMap中的key节点,如果apply()返回值不为空, * 用apply()执行结果的值替换key原有的value; * 给定的key在hashMap中不存在时,直接返回null; * */@Overrid...

2021-08-02 11:45:20 242

原创 HashMap (jdk1.8)computeIfAbsent()方法注释

computeIfAbsent 是实现Map接口中的方法,功能介绍如:/* * 功能:判断给定的key在hashMap中是否存在,如果key已经存在,则返回key对应的value * 如果key不存在,则新生成一个节点(hash,key,value,null),value的值是通过 * V v = mappingFunction.apply(key);获取的,重点是要搞明白mappingFunction.apply(key)这个方法。 * */@Overrid...

2021-07-28 18:50:58 292

原创 HashMap (jdk1.8) getOrDefault()、 putIfAbsent()、replace()方法注释

1.getOrDefault(Object key, V defaultValue)/* * 如果hashMap中存在给定的key,就用这个key对应的value,否则用默认的value值:defaultValue * */ @Override public V getOrDefault(Object key, V defaultValue) { Node<K,V> e; //定义node类型节点e return (e = g

2021-07-22 16:36:08 176

原创 HashMap (jdk1.8) values()、entrySet()方法及Values、EntrySet内部类注释

1. values()涉及到Values内部类,entrySet()涉及到EntrySet内部类。 /* * 返回hashMap中value值组成的集合 * */ public Collection<V> values() { Collection<V> vs = values; //定义Collection 对象vs,把hashMap父类AbstractMap的成员变量values赋值给vs if (vs == null)

2021-07-20 17:53:58 503

原创 HashMap (jdk1.8) merge(K key, V value, BiFunction<? super V, ? super V, ? )方法详细注释

merge()方法比compute()多传入一个value参数,根据value参数判断是否新建节点。merge()方法功能:如果key存在的情况下: value不为空,remappingFunction的apply()执行结果不为空,替换value为apply()执行结果的值; value不为空,remappingFunction的apply()执行结果为空,删除key节点; value为空:抛出java.lang.NullPointerException异常 old..

2021-07-16 15:48:13 337

原创 HashMap (jdk1.8) keySet()方法详细注释

hashMap通过keyset遍历时,先调用keySet()方法,该方法返回hashMap中存储的key的集合ks,然后再执行内部类 final class KeySet 中的iterator(),iterator()返回一个HashMap.KeyIterator()对象。KeyIterator对象继承HashIterator且实现 Iterator<K>HashIterator的构造方法初始化时会把table中存储的元素赋值给临时node类型变量t,并通过循环do {} while.

2021-07-15 17:18:20 559

原创 HashMap (jdk1.8) clear()、containsValue(Object key)方法详细注释

clear() /* * 清空hashMap * */ public void clear() { HashMap.Node<K,V>[] tab; //定义node类型的数组tab modCount++; //记录hashMap被修改的次数 if ((tab = table) != null && size > 0) { //把hashMap的成员变量table赋值给tab,tab不为空,h

2021-07-15 16:50:47 104

原创 HashMap (jdk1.8) remove(Object key)方法详细注释

remove(Object key)功能:删除指定的key对应的元素。/* * 删除节点 * Object key:需要删除的key * */ public V remove(Object key) { HashMap.Node<K,V> e; //定义Node类型的节点e /* * 调用removeNode(hash(key), key, null, false, true),把执行结果赋值给e,如果e为

2021-07-13 17:56:08 442

原创 HashMap (jdk1.8) get(Object key()方法详细注释

get(Object key)功能:根据给定的key查找hashMap中时候有相同的key,如果有相同的key,返会该key对应的value,如果没找到,返回null.get(Object key)中调用了 getNode(int hash, Object key),所作get()方法的重点在getNode方法上。直接上代码+注释 public V get(Object key) { Node<K,V> e; //定义一个node节点 re

2021-07-09 14:33:38 338

原创 JDK1.8中构造出走红黑树分支的hashMap,可debug --->putTreeVal()方法,和Red Black Tree相关的方法都能debug一遍

花了一天时间终于构造出了能debug红黑树分支的hashMap,要点:1.这个hashMap里面value为105的key是必须的,主要是这些key会存储带红黑树的位置,其他的key可以随设置。2.hashMap扩容后n=128,存储大于64个元素即可。下面分别通过key-value、map、json格式提供这个特殊的hashMap:分3中方式展示下:1.key--value,以逗号分隔;你们,43foes,86强者,42灵上人,68怕死,37种到,34家我,58

2021-07-08 17:19:27 129

原创 HashMap (jdk1.8)put()方法详细注释

HashMap1.8中的put方法直接调用 putVal()方法,所以本文主要注释了 putVal()方法里面的代码。public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { .

2021-07-06 15:21:13 207

原创 HashMap (jdk1.8)resize()方法详细注释

//hashMap初始化兼扩容 final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; //创建node数组oldTab,并将hashMap的成员数组table 赋值给oldTab; int oldCap = (oldTab == null) ? 0 : oldTab.length; //获取oldTab数组的长度,如果直接int oldCap = oldTab.length,当t...

2021-07-05 16:57:49 180

原创 Java中异常处理方法总结

Java中常用的异常处理有3中方式:1.try {} catche{}try...catch 适合处理程序员可以控制和用户输入有误的情况,把认为可能会出现异常的代码放到try后面的{},异常后执行的代码放到catche的{}里面,catche的{}后面的语句正常执行。try的{}中异常后面的语句停止执行。2.thows exception{}用throws处理异常:处理方法是将

2017-12-06 17:30:31 676

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除