初探Java集合框架

集合框架UML图

java集合UML.png

从图中可以看出集合框架分为2大模块 Collection和Map。

Collection

Collection主要子类接口分为List、Set、Quene。
List的特点是 集合中的元素可重复,因实现ListIterator接口所以提供双向迭代的功能

以下是相关List的具体实现类

类名 使用对象 是否实现同步 默认大小 默认扩容大小
Vector 数组(Object[]) 10 100%
ArrayList 数组(Object[]) 10 50%
LinkedList 链表(内部静态类Node) 0

Stack在Vector类的基础上增加了栈的先进后出的规则。

Set的特点是 集合中的元素不可重复
HashMap的数组长度总是2的多少次方

类名 使用对象 是否实现同步 默认大小 默认扩容大小 特点
HashSet 数组加链表 16 100% 元素插入无序,查询快
TreeSet 树状结构 0 元素有序插入,也能按照给定规则进行比较插入

LinkedHashSet在HashSet的基础上在每次增加元素,删除元素时,用一条链表维护元素插入时的先后顺序。

Map

Map是以key-value形式存储的集合

类名 使用对象 是否实现同步 默认大小 默认加载因子 默认扩容大小 特点
HashMap 数组加链表 16 0.75f 100% 元素无序插入,访问快
HashTable 数组加链表 11 0.75f 100%+1 使用Enumeration进行迭代
TreeMap 树状结构 16 0.75f 100% 有序插入
IdentityHashMap 数组 32 100% 只要Key!=Key(即地址不等即可)
WeakHashMap 数组加链表 16 0.75f 100% 弱引用Key(即使在内存充足时,只要这个Key不存在强引用,就会被GC给回收掉。)

QueueQueue

定义了队列的性质---先进先出

ArrayDeque---双向队列

PriorityQueue---优先级队列

以上2种队列均采用的是数组实现的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 以下是《疯狂Java讲义》中的一些知识,如有错误,烦请指正。 集合概述 Java集合可以分为Set、List、Ma...
    hainingwyx阅读 555评论 0 1
  • 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:V...
    Oneisall_81a5阅读 908评论 0 11
  • 集合类简介 为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就要对对象进...
    阿敏其人阅读 1,441评论 0 7
  • 不知何时起,「成熟」成为评价一个人最中要害的地方,它对异性来说仿佛是一种充满诱惑的荷尔蒙。 你要是讨厌恋人了,大可...
    杨夏阅读 506评论 0 5
  • 小的时候家门前有一块空地,空地上长着几颗梧桐树,每到夏天,知了就吱吱吱的叫个没完,夏天的那个阶段,做得最多的事就是...
    Tolecen阅读 521评论 4 6