Collection
Java 集合
G5513
勿忘初心
展开
-
ArrayList详解
一、ArrayList概述:ArrayList是实现了List接口的动态数组,所谓动态数组就是他的大小是可变的。实现了所有可选列表操作,并允许包括Null在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小,默认初始容量为10。随着ArrayList中元素的增加,它...转载 2019-03-29 18:22:15 · 204 阅读 · 0 评论 -
Vector 详解
一、Vector简介:(1)Vector可以实现可增长的对象数组。与数组一样,可以使用整数索引进行访问的组件。不过,Vector的大小是可以增加或者减小的,以便适应创建Vector后进行添加或者删除操作。(2)同时Vector是线程安全的!底层使用的是synchronized进行加锁。public class Vector<E> extends AbstractList&...转载 2019-03-29 21:08:10 · 532 阅读 · 0 评论 -
LinkedList 详解
(注:本文内容基于JDK1.6)一、LinkedList概述:LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。LinkedList实现所有可选的列表操作...转载 2019-03-29 23:44:56 · 417 阅读 · 0 评论 -
HashMap 详解
概述JDK 1.8对HashMap进行了比较大的优化,底层实现由之前的“数组+链表”改为“数组+链表+红黑树”,本文就HashMap的几个常用的重要方法和JDK 1.8之前的死循环问题展开学习讨论。JDK 1.8的HashMap的数据结构如下图所示,当链表节点较少时仍然是以链表存在,当链表节点较多时(大于8)会转为红黑树。几个点:先了解以下几个点,有利于更好的理解HashMap的源码和阅...转载 2019-03-31 20:52:52 · 212 阅读 · 0 评论 -
ConcurrentHashMap详解
(本文使用的源码都是基于JDK1.8的)ConcurrentHashMap是conccurrent家族中的一个类,由于它可以高效地支持并发操作,以及被广泛使用,经典的开源框架Spring的底层数据结构就是使用ConcurrentHashMap实现的。与同是线程安全的老大哥HashTable相比,它已经更胜一筹,因此它的锁更加细化,而不是像HashTable一样为几乎每个方法都添加了synchr...转载 2019-03-31 21:11:47 · 477 阅读 · 0 评论