什么是集合框架?
java集合框架提供了数据结构和算法以及List、Collection、Set、Map接口 Map为独立接口,而List和Set是继承了Collection接口
List下有ArrayList,Vector,LinkedList
Set下有HashSet,LinkedHashSet,TreeSet
Map下有Hashtable,LinkedHashMap,HashMap,TreeMap
List接口
List是有序的,可重复的
ArrayList:
数据结构是数组,他的查询快,但是增删慢,因为每当插入或删除操作时,对应的需要向前或向后的移动元素
线程不安全,效率高
Vector:
数据结构是数组,查询快,增删慢。Vector和ArrayList的语法其实基本上的一样的区别就是
线程安全,效率低
LinkedList:
数据结构是链表,查询慢,增删快。为什么查询慢,你可以把LinkedList当成链条去理解。双向链表的查询逻辑是他会根据index的大小判断是从前开始遍历还是从后开始遍历,如果index更靠前就从前遍历,更靠后就从后遍历,也就是在查询过程中,会一次次的移动指针直到获取到index的值。而增删快,你链条取一个链直接连接上就可以了
线程不安全,效率高
有些人可能不理解线程是什么,我来打个比方ArrayList、LinkedList、Vector都是一个学校,但是ArrayList、LinkedList这2个学校有好几个门可以同时进学校,就会导致可能进来一些不法分子,但是Vector学校只有一个门进入学校,就会查的很严格,不让不法分子进入校园。希望大家可以理解!
Map下主要有HashTable,HashMap,TreeMap。
1.HashMap
无序,非线程安全,效率高。HashMap允许null值(key和value都允许)。
2. HashTable
无序,线程安全,效率低。除构造函数外,HashTable的所有 public 方法声明中都有 synchronized关键字,而HashMap的源码中则没有。HashTable不允许null值(key和value都允许)。
3. TreeMap
有序,非线程安全,效率高(O(logN)),但比不上HashMap (O(1))。
Set 接口存储一组唯一,无序的对象。
1.HashSet
底层数据结构是哈希表。(无序,唯一)
依赖的两个方法:hashCode()和equals() 保证元素唯一性
2. LinkedHashSet
底层数据结构是链表和哈希表。(FIFO插入有序,唯一)
1.由链表保证元素有序
2.由哈希表保证元素唯一
3. TreeSet
底层数据结构是红黑树。(唯一,有序)
————————————————
版权声明:本文为CSDN博主「小池敲代码了吗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_73245042/article/details/134698433
博客来源:转载我自己
标签:HashMap,框架,ArrayList,List,介绍,Vector,线程,集合,数据结构 From: https://www.cnblogs.com/cq971/p/17870824.html