02-集合-初
集合知识介绍
蚂蚁@叔叔
热爱软件技术,分享点滴知识
展开
-
8.如何理解迭代器
一:概念 迭代器:对Collection进行迭代 二:源码中的参数介绍 Collection接口的定义: public interface Collection<E> extends Iterable<E> Iterable<E>接口的定义: public interface Iterable<T> { ...转载 2018-10-05 15:52:55 · 427 阅读 · 0 评论 -
7.谈谈对集合的理解
Java集合是java提供的一个工具包,全部继承自java.util.*。主要包括两大接口Collection接口和Map接口以及相关的工具类(Iterator迭代器接口、Enumeration枚举类、Arrays和Colletions)。 (1)Collection是一个接口,包含List列表和Set集合。其中List是有序的队列,元素值可以重复,索引从0开始,...转载 2018-10-05 11:08:10 · 1894 阅读 · 0 评论 -
6.linkedlist和arraylist的区别
ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 上代码: ...转载 2018-10-04 19:31:12 · 240 阅读 · 0 评论 -
5.concurrentHashMap的实现
JDK1.7的实现 在JDK1.7版本中,ConcurrentHashMap的数据结构是由一个Segment数组和多个HashEntry组成,如下图所示: Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,也就是上面的提到的锁分离技术,而每一个Segment元素存储的是HashEntry数组+链表,这个和HashMap的数据存储结构一样 初始化 ...转载 2018-10-04 19:12:53 · 241 阅读 · 0 评论 -
3.hashMap的数据结构,源码中的常用方法
一:hashMap的数据结构 HashMap储存的是键值对,并允许使用null值和null键,不保证映射的顺序。HashMap实际上是一个“链表散列”的数据结构,即数组和链表和红黑树的结合体。 数组:存储区间连续,占用内存严重,寻址容易,插入删除困难; 链表:存储区间离散,占用内存比较宽松,寻址困难,插入删除容易; Ha...转载 2018-10-03 15:51:38 · 204 阅读 · 0 评论 -
2.hashMap如何保证线程安全
一:hashMap线程不安全表现 (1)在两个线程同时尝试扩容HashMap时,可能将一个链表形成环形的链表,所有的next都不为空,进入死循环; (2)在两个线程同时进行put时可能造成一个线程数据的丢失; 二:如何线程安全的使用hashMap (1)Hashtable //Hashtable Map<String, String> hashtable = new Has...转载 2018-10-03 20:49:37 · 2817 阅读 · 0 评论 -
1.jdk1.8中hashMap的原理,hash冲突如何解决
一:hashMap的工作原理 HashMap是基于链地址法的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。 当我们给put()方法传递键和值时,我们先对键调用hashCode()方法计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量(超过L...转载 2018-10-03 15:25:18 · 3625 阅读 · 0 评论 -
目录
1:hashMap的原理,hash冲突如何解决 2:hashMap如何保证线程安全 3:hashMap的数据结构,hashcode进行了几次转换 4:hashMap的数据结构,get和put方法如何实现 5:hashMap查询的时间复杂度 6:linkedlist和arraylist的区别 7: 如何理解迭代器 8:btree结构和btree+结构的区别 9:concurrentH...原创 2018-09-23 14:05:18 · 174 阅读 · 0 评论 -
1.hashMap的原理,hash冲突如何解决
一:hashMap的原理 HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。 //HashMap的主干数组,可以看到就是一个Entry数组,初始值为空数组{},主干数组的长度一定是2的次幂,至于为什么这么做,后面会有详细分析。 transient Entry<K,V>[] table...转载 2018-09-30 22:28:47 · 117 阅读 · 0 评论