首先是一张Java集合类的大图,基本勾勒出Java集合类之间的关系(转自百度图片)
Java集合类主要分为两类:
collection:
ArrayList:数组实现,维护 table[],get时间复杂度O(1),插入、修改、删除 需要遍历数组,O(N)
LinkedList:链表实现。get时间复杂度O(N),插入、修改、删除只需要修改指针,时间复杂度O(1)
HashSet: HashMap 实现,key= ,value=default,无序
LinkedHashSet:LinkedHashMap实现。
TreeSet:有序,采用红黑树的数据结构来存储集合元素。TreeSet支持两种排序方式: 自然排序、定制排序
map:
HashMap: 负载因子,当threshold=8 时,哈希冲突链表转为 红黑树。保证插入、遍历效率
当threashold=6时,由红黑树转为链表