学习了java集合,对整体框架有个了解
collection:(单列集合)
1.List:有序,可重复
ArrayList--底层数据结构是数组,查询快,增删慢,线程不安全,效率高
LinkedList--底层数据结构是链表,查询慢,增删快,线程不安全,效率高
Vector--底层数据结构是数组,查询快,增删慢,线程安全,效率低
2.Set:无序,唯一
HashSet
底层数据结构是哈希表
如何保证元素的唯一性呢?
依赖于两个方法:hashCode()和equals()
自动生成这两个方法即可
-LinkedHashSet
底层是哈希表和链表
哈希表保证唯一性
链表保证元素的有序性
TreeSet
底层数据结构是红黑树。
怎样保证元素的唯一性呢?
通过比较返回值是否是0来决定
怎样保证元素排序呢?
自然排序
比较器排序
Map(双列集合)
是一种存储键值对映射的容器类,在Map中键可以是任意类型的对象,但不能有重复的键,每个键都对应一个值
1.HashMap
底层数据结构是哈希表
-LinkedHashMap
底层是哈希表和链表2.TreeMap
底层数据结构是红黑树。
HashMap和HashTable的区别?
HashMap是非同步的,键值允许使用null;
Hashtable是同步的,键值不允许使用null