集合总结
单列集合
Collection
List(存取有序,有索引,可以重复)
ArrayList
底层是数组实现的,线程不安全,效率高,查找和修改快,增和删比较慢
LinkedList
底层是链表实现的,线程不安全,效率高,增和删比较快,查找和修改比较慢
LinkedHashSet 的特点
底层是链表实现的,是 Set 集合中唯一一个保证怎么存就怎么取的集合对象
因为是 HashSet 的子类,所以也是保证元素唯一的,与 HashSet 的原理一样
可以保证怎么存就怎么取
Vector
底层是数组实现的,线程安全的,效率低,无论增删改查都慢
☆
如果查找和修改多,用 ArrayList
如果增和删多,用 LinkedList
如果都多,用 ArrayList
Set(存取无序,无索引,不可以重复)
HashSet
底层是哈希算法实现
LinkedHashSet
底层是链表实现,但是也是可以保证元素唯一,和 HashSet 原理一样
TreeSet
底层是二叉树算法实现
一般在开发的时候不需要对存储的元素排序,所以在开发的时候大多用 HashSet, HashSet 的效率比较高
TreeSet 在面试的时候比较多,问你有几种排序方式,和几种排序方式的区别
TreeSet 集合是用来对元素进行排序的,同样它也能保证元素的唯一
当compareTo方法返回0的时候集合中只有一个元素
当compareTo方法返回正数的时候集合会怎么存就怎么取
当compareTo方法返回负数的时候集合会倒序存储
双列集合
Map
HashMap
底层是哈希算法,针对键
LinkedHashMap
底层是链表,针对键
TreeMap
底层是二叉树算法,针对键
开发中用 HashMap 比较多 |
|