1、 集合
Collection:
List(存储有序,有索引,可以重复)
ArrayList
底层是数组实现,线程不安全,查找和修改快,增和删比较慢。
LinkedList
底层是链表实现,线程不安全,增删比较快,查找和修改比较慢。
Vector
底层是数组实现的,线程安全的,增删改查都慢。
使用:如果查找和修改多,使用ArrayList。
如果增删较多,使用LinkedList。
如果都多,用ArrayList。
Set(存取无序,无索引,不可以重复)
Hashset
底层是hash算法实现。
LinkedHashset
底层是哈希算法实现,但也是能保证元素唯一,和Hashset原理一致。
Treeset
底层是二叉树算法实现。
使用:一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多数使用Hashset,Hashset的效率比较高。
Treeset在面试的时候比较多,问有几种排序方法,和几种排序方式的区别。
Map
HashMap
底层是哈希算法,针对键。
LinkedHashMap
底层是链表,针对键。
TreeMap
底层是二叉树算法,针对键。
使用:开发中使用HashMap较多。