List、Set和 Map三大类的集合
List和Set继承于Collection,List可以保存的对象可以重复,而Set保存的对象不可以重复.
Map是通过key-value方式来进行存储.
数组
数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入,删除,扩展困难.
链表
链表分为单向链表,双向链表,循环链表,通过指针将两个元素连接在一起,所以链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N),.链表的特点是:寻址困难,插入,删除和扩展容易.
哈希表
哈希表其实是结合了数组和链表的优点,进行的折中方案,平衡了数组和链表的优缺点.
List:元素可以重复
ArrayList:数组结构,线程不安全
LinkedList:双向链表结构,线程安全
Vector:数组结构,线程安全
Stack:底层是Vector,栈模式先进后出
Set:元素不可以重复
HashSet:内部通过HashMap来实现,通过哈希算法来防止重复,线程不安全
LinkedHashSet:元素严格按照放入顺序排列