集合框架体系
单列
Collection 父接口
常用方法:
添加add(),addAll()
删除remove(),removeAll(),clear()
修改
获取size()
判断isEmpty(),contanis();
其他
遍历 toArray(),toArray(Object[] obj),iterator
List 子接口
获取 get()
修改 set()
截取List<E> subList(int fromIndex, int toIndex)
遍历ListIterator<E> listIterator() ,ListIterator<E> listIterator(int index)
ArrayList 实现类,开发中常用类
特点:
底层数据结构是数组
允许重复
查询和修改效率高,添加和删除效率低
线程不安全
有索引,长度是不变的
存储null值
存储有序的
Vector实现类
特点:
线程是安全的
效率低的
ArrayList是Vector的升级版,Vector是旧版的ArrayList
ArrayList是为了提高Vector使用的效率
Stack 实现类
特点:
底层数据结构是栈结构
操作元素的特点是先进后出
方法:
empty(),push(),pop(),peek(),search()
LinkedList 实现类,开发中常用类
特点:
底层数据结构是链表结构
添加和删除效率高,查询和修改效率低
线程是不安全的
有List,Stack,Queue,Deque的所有方法使用
Queue 接口
特点:
数据结构是队列
数据操作的特点是先进先出
方法:
offer(),peek(),poll(),
Deque 接口
特点:
底层数据结构是双端队列
方便操作第一个和最后一个元素
方法:
addFirst,offerFirst,popFirst,pollFirst,removeFirst,getFirst,peekFirst
addLast,offerLast,popLast,pollLast,removeLast,getLast,peekLast
ArrayDeque 实现类
特点:
是基于数组的双端队列
方法使用集齐了Queue和Deque的
Set 子接口
特点:
存储无序的
不允许重复,唯一
存储null值,存储多个null认为一个null值
方法:
使用父类的Collection
HashSet 实现类
特点:
底层数据结构是哈希表
哈希表保证无序,唯一
存储无序的
可以存储null值
TreeSet 实现类
特点:
存储无序的
唯一
数据结构是二叉树
二叉树的特点是可以排序
排序两种方式
自然排序 ,实现Comparable接口
比较器排序 ,实现Comparator接口
LinkedHashSet 实现类
特点:
数据结构是链表+哈希表
链表保证存储有序,哈希表保证唯一
可以添加null值
双列
Map 接口
特点:
是一个可以存储键值对的集合
key键不允许重复
值是可以重复的
只能存储一个null键,可以存储多个null值
方法:
添加put(),putAll()
删除clear(),remove(index),remove(key)
修改put()键相同就是修改,键不同就是添加
获取get(),size()
判断isEmpty(),contanisKey(),contanisValue()
其他
遍历entrySet(),keySet(),values(),iteartor(),
HashMap 实现类
特点:
底层数据结构是哈希表
哈希表是保证无序,唯一
可以存储null键null值
方法使用父类的
TreeMap 实现类
特点:
数据结构是二叉树
二叉树特点可以保证元素可以排序(系统类)
不能存储null键值
排序两种方式(针对于自定义类需自己实现接口来达到排序的操作)
自然排序 ,实现Comparable接口
比较器排序 ,实现Comparator接口
Hashtable 实现类
特点:
线程是安全的
效率低的
数据结构是哈希表
哈希表保证无序,唯一的
Hashtable和HashMap是兼容的,效率高通常使用HashMap
LinkedHashMap 实现类
特点:
数据结构是链表+哈希表
链表保证存储有序
哈希表保证无序,唯一
方法用父类的