Collection集合
只能存储引用类型的数据, 单个存储
基本操作: add(), remove(), contains(), size(), iterator()
特点: 存储的元素是有序,可重复的
为每个元素指定一个索引值
增加的方法, 针对索引值的操作, listIterator(), subList(), sort(Comparator)
底层是数组, 访问快, 添加/删除效率低
初始化容量: 10, 扩容: 1.5倍
底层是数组, 它是线程安全的, ArrayList不是线程安全的
初始化容量: 10, 扩容: 2倍
底层是双向链表, 添加/删除效率高, 访问慢
ArrayList适用于以访问为主, 很少添加/删除的情况
LinkedList适用于经常添加/删除的情况
特点: 数据无序,不可重复
底层是HashMap, HashSet实际上就是HashMap键的集合
底层是TreeMap, TreeSet实际上就是TreeMap键的集合
TreeSet实现了SortedSet接口, 可以对元素自然排序, 要求元素必须是可比较的:
● 在构造方法中指定Comparator比较器对象
● 如果没有Comparator比较器, 集合元素的类必须实现Comparable接口
如果不需要对Set集合进行排序就选择HashSet
如果需要对Set集合的元素进行排序就选择TreeSet
List集合/HashSet集合的contains( e ) / remove( e )等方法需要调用对象的equals()方法, 这些集合中的元素的类需要重写equals()方法
TreeSet集合中contains( e )/ remove( e) 等方法判断是否同一个对象是根据Comparator/Comparable的比较结果是否为0来判断的, 如果比较结果为0表示同一个元素