java容器类
HLA_胡
2016.06-2019.08 猫眼电影
2019.08-至今 头条西瓜视频
展开
-
java容器类---Hashtable
1、Hashtable简介(1)Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。(2)Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。(3)Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克原创 2015-08-08 21:35:47 · 1291 阅读 · 0 评论 -
java容器类---LinkedList
1、LinkedList简介(1)LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。(2)LinkedList同样是非线程安全的,只在单线程下适合使用。(3)LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。原创 2015-08-07 21:51:11 · 168 阅读 · 0 评论 -
java容器类---Vector
1、Vector简介(1)Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。(2)Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。(3)Vector实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆,实现了原创 2015-08-08 11:34:45 · 3633 阅读 · 0 评论 -
java容器类---LinkedHashMap、LinkedHashSet
1、LinkedHashMap简介1.1 LinkedHashMap数据结构 LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同。LinkedHashMap是Map原创 2015-08-10 13:18:17 · 592 阅读 · 0 评论 -
java容器类---HashMap、HashSet
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表:原创 2015-07-16 15:30:43 · 883 阅读 · 0 评论 -
java容器类---TreeMap、TreeSet
1、TreeMap 简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提高了查询的效率。红黑树的基本性质如下:1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NULL节点,空节点)是黑色的。4、如果一原创 2015-08-10 16:08:59 · 899 阅读 · 0 评论 -
java容器类---概述
1、容器类关系图虚线框表示接口。实线框表示实体类。粗线框表示最常用的实体类。点线的箭头表示实现了这个接口。实线箭头表示类可以制造箭头所指的那个类的对象。2、容器类持有对象方式1 Collection:只允许每个位置上放一个对象。它包括“以一定顺序持有一组对象”的List,以及“只能允许添加不重复对象”的Set。你可以用add()方法向Collec原创 2015-07-15 20:12:59 · 834 阅读 · 3 评论 -
java容器类---ArrayList
1、ArrayList 简介(1)ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。(2) ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的C原创 2015-08-07 19:20:27 · 1032 阅读 · 0 评论 -
java 集合面试问题
问题 答案 构造函数 方法 ArrayList 动态数组,非线程安全,允许添加null。查找效率高,但每次插入或删除元素,就要大量地移动元素,插入删除元素的效率低。 fast-fail事件产生的条件:当多个线程对Collection进行操作时,若其中某一个线程通过iterator去遍历集合时,该集合的内容被其他线程所改变;则会抛出Concur...原创 2019-08-16 15:47:12 · 131 阅读 · 0 评论