- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 共同学习Java源代码-数据结构-HashMap(十六)
final TreeNode find(int h, Object k, Class kc) { TreeNode p = this; do { int ph, dir; K pk; TreeNode pl = p.left, pr = p.right, q;
2017-11-30 16:46:20 186
原创 共同学习Java源代码-数据结构-HashMap(十五)
从这篇文章开始到HashMap系列的结束 都会讲一个内容 那就是HashMap的TreeNode内部类 HashMap每个桶的链表的长度达到8 再想给链表增加元素 就要将链表改成二叉树 这个TreeNode就是红黑树的实现 static final class TreeNode extends LinkedHashMap.Entry 这个类是静态final的 继承自LinkedHashMa
2017-11-29 16:45:15 340
原创 共同学习Java源代码-数据结构-HashMap(十四)
跳过一些Spliterator方法 那是跟lambda表达式相关 暂且略过 Node newNode(int hash, K key, V value, Node next) { return new Node }这个方法是创建节点的方法 就是new 一个 Node实例 // For conversion from TreeNodes to
2017-11-28 17:05:21 150
原创 共同学习Java源代码-数据结构-HashMap(十三)
现在来看各个迭代器 首先看迭代器的基类 abstract class HashIterator { Node next; // next entry to return这个属性代表下一个迭代的节点 Node current; // current entry这个属性代表当前节点 int expectedM
2017-11-28 16:47:17 179
原创 共同学习Java源代码-数据结构-HashMap(十二)
中间略过一些lambda表达式相关方法 以后再说 @SuppressWarnings("unchecked") @Override public Object clone() { HashMap result; try { result = (HashMap)super.clone();
2017-11-27 17:34:47 164
原创 Lucene 7.x中根据Field字段值进行排序的小例子
Lucene 7中对DocValues系列的API做了一些改动 本帖就是说明一下API的变化 本帖的例子是将一些图书信息写入索引 然后搜索的时候按照图书出版时间的倒叙排序先来看写入文档的代码: Directory dir=FSDirectory.open(Paths.get("E:/lucene_indexes")); IndexWriterConfig co
2017-11-27 10:40:43 2602
原创 共同学习Java源代码-数据结构-HashMap(十一)
@Override public V getOrDefault(Object key, V defaultValue) { Node e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; }这个方法是获取值且在没有取到值的时候,返回默认值的方法
2017-11-26 16:52:06 161
原创 共同学习Java源代码-数据结构-HashMap(十)
public Set keySet() { Set ks = keySet; if (ks == null) { ks = new KeySet(); keySet = ks; } return ks; }这个方法是返回键集合的方法 先将keySet属性赋给
2017-11-15 19:09:59 220
原创 共同学习Java源代码-数据结构-HashMap(九)
public V remove(Object key) { Node e; return (e = removeNode(hash(key), key, null, false, true)) == null ? null : e.value; }这个是很常用的删除键的方法 首先创建节点对象e 然后调用removeNode
2017-11-10 17:31:38 155
原创 共同学习Java源代码-数据结构-HashMap(八)
final void treeifyBin(Node[] tab, int hash) { int n, index; Node e; if (tab == null || (n = tab.length) resize(); else if ((e = tab[index = (n - 1) & hash]) !=
2017-11-10 16:41:01 170
原创 共同学习Java源代码-数据结构-HashMap(七)
final Node[] resize() { Node[] oldTab = table; int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0; if (oldCa
2017-11-07 17:01:54 208
原创 共同学习Java源代码-数据结构-HashMap(六)
public V put(K key, V value) { return putVal(hash(key), key, value, false, true); }这个方法也是非常常用的put方法 调用的是下面的putVal方法 将键的哈希值 键 以及两个布尔参数传到下面的方法里 第一个布尔值为false表示添加的键值如果存在就覆盖 第二个为true代表不是cre
2017-11-06 16:18:39 184
带事务回滚测试的SSH整合小案例(Spring 3.2+Hibernate 3.3+Struts 2.3)
2013-05-27
省市区三级级联(Ajax+JSP+Servlet+JDBC+Oracle)
2012-11-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人