Collection
一.List(存取有序,有索引,可以重复)
1.ArrayList
- 底层是数组实现的,线程不安全,查找和修改快,增删比较慢
2.LinkedList
- 底层是链表实现的,线程不安全,增删比较快,查找和修改比较慢
3.Vector
- 底层是数组实现的,线程安全,无论增删查改都慢
如果查找和修改多,用ArrayList
如果增删多用LinkedList
如果都多用ArrayList
二.Set(存取无序,无索引,不可以重复)
1.HashSet
- 底层是哈希算法实现,保证元素唯一性
2.LinkedHashSet
- 底层是链表实现的,但是也可以保证元素唯一,和HashSet原理一样
3.TreeSet
- 底层是二叉树算法实现的,对元素进行排序
一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用HashSet,因为HashSet效率比较高TreeSet在面试的时候比较多,问你有几种排序方式?几种排序方式的区别?
三. Map
1.HashMap
- 底层是哈希算法,针对键
2.LinkedHashMap
- 底层是链表,针对键
3.TreeMap
- 底层是二叉树算法,针对键
HashMap在开发中用的比较多