集合框架
Collection
List (存储有序,有索引,可以重复)
ArrayList
底层是数组实现的,线程不安全,查找和修改快,增和删较慢
LinkedList
底层是链表实现的,现成不安全,增和删较快,查找和修改较慢
Vector
底层是数组实现的,现成安全,增删改查都较慢
如何查找和修改多,用ArrayList
如果增删多,用LinkedList
如果都多,用ArrayList
Set (存储无序,无索引,不可以重复)
HashSet
底层是Hash算法实现的
LinkedHashSet
底层是链表实现的,但是也可以保证元素唯一,和HashSet原理一样
TreeSet
底层是二叉树算法实现的
一般开发时,不需要对存储的元素排序,所以大多数时候用HashSet,因为效率较高
TreeSet面试时常用,会问有几种算法,和几种排序方式的区别
Map
HashMap
底层是哈希算法,针对Key
LinkedHashMap
底层是哈希算法,针对Key
TreeMap
底层是二叉树算法,也是针对Key
开发中用HashMap较多