Collection集合体系的关系图
其中,Collection接口的父接口是Iterable,它所存的对象类型均为Object
List接口:是有序的,其元素是可以重复的。
Set接口:是不一定有序的,其元素是不可以重复的。
List接口的实现类:
- ArrayList:底层实现是静态数组,默认的初始化空间为10,在移除或者添加元素时不方便,所以要尽量闭避免内存的重新分配,可以系列化。线程不安全,运行快。
- LinkList:底层实现是链表,所以在添加或移除某个元素时方便。
- Vector:底层实现是静态数组,线程安全,运行慢。
这三个实现类均“查询快,增删慢”
Set接口的实现类
- HashSet::使用了 HashMap<key,value> 中的所有key值,来保证唯一性
当自定义类型存放于HashSet中时,为保证元素内容不重复,必须覆盖hashcode()方法和equals()方法。 - TreeSet:是SortedSet的实现类,而SortedSet是Set子接口,默认按自然排序排列
当自定义类型存放于TreeSet集合中时,对元素自动排序,则要求元素对象必须实现Comparable接口,覆盖compareTo方法,指定排序规则
Map接口:用于存放任意键值对,哈希散列接口
键:无序,无下标,不能重复
值:无序,无下标,可以重复
map接口的实现类
- HashMap:是哈希散列: 底层数据结构是“静态数组+红黑树",线程不安全,允许用null作为key或是value。
Properties: Hashtable的子类,要求key和value都是String。通常用于配置文件的读取 - HashTable线程安全。
注意:
Properties:实现了SortedMap接口(是Map的子接口),可以对key自动排序。
TreeMap: 实现了SortedMap接口(是Map的子接口),可以对key自动排序。