title: Java集合
date: 2018-05-01 15:58:02
tags: javaSE
categories: 后端技术
java容器接口
一级容器
集合只有两个基本接口:Collection和Map
- Collection:这个接口需要实现add方法
boolean add(E element)
- Map:这个接口需要实现put方法,该接口是使用键值对进行存储的
V put(K key,V value)
V get(K key)
二级容器
继承自Collection
- List:这是一个有序集合,元素会增加到容器中的特定位置。可以采取两种方式访问:使用迭代器和整数索引(随机访问)来访问。如果实现方式不同,访问的代价也不一样。链表使用随机访问的代价巨大。
- Set:这个接口等同于Collection,但是定义更加详细,add方法不允许增加重复的元素。equals方法:只要两个集包含同样的元素就认为是相等的,不需要一样的顺序。hashCode方法的定义保证包含相同元素的集合会得到相同的散列码。其子接口SortedSet会提供用于排序的比较器对象。
- Queue:这个接口代表一个队列,采用“先进先出”的方式。
继承自Map
具体后面展开。
具体实现类集合
- ArrayList:一种可以动态增长和缩短的索引集合。
- LinkedList:一种可以在任何位置进行高效的插入和删除操作的有序集合。
- ArrayDeque:一种用循环数组实现的双端队列。
- HashSet:一种没有重复元素的无需集合。
- TreeSet:一种有序集合。
- EnumSet:一种可以包含枚举类型值的集。
- LinkedHashSet:一种可以记住元素插入次序的集。
- PriorityQueue:一种允许高效删除最小元素的集合。
- HashMap:一种存储键值关联的数据结构。
- TreeSet:一种键值排列有序的映射表。
- EnumMap:一种键值数据枚举类型的映射表。
- LinkedHashMap:一种可以记住键值项添加次序的映射表。
- WeakHashMap:一种其值无用武之地后可以被垃圾回收器回收的映射表。
- IdentityHashMap:一种用==而不是用equals比较键值的映射表。
集合结构示意图
部分具体特性脑图:
常用实现类以及对应接口: