![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
windy26205
这个作者很懒,什么都没留下…
展开
-
java中HashSet中的去重以及容量扩增原理
首先需要明白java中HastSet实际上是用散列表实现的,散列表的大小默认大小为16(也叫散列表元的数量),加载因子为0,75(下面会解释什么是加载因子)。 去重原理:当hashset add一个元素A的时候,首先获取这个元素的散列码(hashcode方法),假设散列码为400,然后将散列码对散列表元的数量取模,400%16=0; 0表示第一个元素,然后将元素A与散列表中的第一个链表原创 2012-02-08 10:03:31 · 3379 阅读 · 0 评论 -
java集合框架中的几种扩容方式小结
对于java中的各种集合类,根据底层的具体实现,小结了一下大致有3种扩容的方式: 1、对于以散列表为底层数据结构实现的,(譬如hashset,hashmap,hashtable等),扩容方式为当链表数组的非空元素除以数组大小超过加载因子时, 链表数组长度变大(乘以2+1),然后进行重新散列。 2、对于以数组为底层数据结构实现的,譬如ArrayList,当数组满了之后,数组长度变大(乘以3/2原创 2012-02-10 00:48:31 · 3287 阅读 · 0 评论 -
拾人牙慧 StringBuilder.toString()的问题
原文地址:http://www.blogjava.net/xylz/archive/2012/03/16/371966.html#372029 一次简单却致命的错误 线上服务器负载过高发生了报警,同事找我求救。 我看到机器的负载都超过20了,查看java进程线程栈,找到了出问题的代码。 下面是其代码片段,实际情况错误处理比这更坏。 1 package demo; 2转载 2012-03-23 15:55:53 · 4009 阅读 · 0 评论