数据结构和集合-----JAVA
TasselLeaf
这个作者很懒,什么都没留下…
展开
-
数据结构与集合篇一些常用的数据结构和集合 面试常问部分(一)
java有8种之多,但是不用害怕事实上常用的数据结构也就那么几种, 常用的也就是哈希表,向量,Properties,集合框架,栈(关于数据结构,我写的不是很细,因为最近小编在准备求职,等小编有空会准备详细代码来进行讲解) 栈 在面试中栈经常与队列一起出题。 栈/队列 线性存储结构。栈先进后出,队列,先进先出。 栈:只能在入栈出栈口(同一口)进行操作 队列:只能在表的一端进行插入和在另一端进...原创 2018-08-14 20:14:08 · 301 阅读 · 0 评论 -
HashMap源码分析 以及List、Set、Map的讲解 小编会讲的比较细,有问题可以留言
接着讲集合 Java 中List、Set、Map 下面四句话-----------------借鉴地址:http://blog.csdn.net/speedme/article/details/22398395 世间上本来没有集合,(只有数组参考C语言)但有人想要,所以有了集合 有人想有可以自动扩展的数组,所以有了List 有的人想有没有重复的数组,所以有了set 有人想有...原创 2018-08-15 10:56:09 · 464 阅读 · 0 评论 -
hashcode代码的解析以及为啥要取31作为系数
在hashcode中,总而言之就是要产生尽可能不重复的hashCode值 下图的 value.length 为你传入的String字符串的长度,同理可推(传入的是 String a = "abcde" ),长度就为5 val[i]其实就是传入字符串的ascii值,如果传入的位abcde,则val[1]=97,val[2]=98; public int hashCode() { ...原创 2018-08-16 15:21:54 · 897 阅读 · 1 评论 -
HashMap效率高的遍历 要用就用这两种了其他的用了浪费时间反正迟早还是要用这两种的
public static void testErgodicMethod(HashMap<String,String> map){ for (Map.Entry<String, String> entry : map.entrySet()){ String key = entry.getKey(); String value = e...原创 2018-08-17 16:42:27 · 505 阅读 · 0 评论 -
面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
如果你去面试,面试官不问你这个问题,你来找我^_^ 下面直接来干货,先说这三个Map的区别: HashTable 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方...转载 2018-08-23 16:15:06 · 141 阅读 · 0 评论 -
ConcurrentHashMap原理分析(1.7与1.8)针对原文进行了一定的修改
前言:本人做了一定的修改 以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash, 在JDK 1.7 中这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,1可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会...转载 2018-08-23 19:04:05 · 1692 阅读 · 1 评论