JAVA 集合框架

1.Collection接口

    List(序列),继承自Collection,元素有序,并且可重复;

ArrayList——动态数组,查找速度快,批量增删慢;

查询快的原因是:直接通过下标找到对应的元素,查找10个元素,只需要1次

LinkedList -- 双向链表;批量增删快,查找慢;

查询慢的原因是:链表,就必须一个接着个的往下找。比如查找第十个元素,就要查找10次才能找到元素。

Vector -- 线程安全的动态数组;

Set(集),继承自Collection, 元素无序,并且不可以重复;

HashSet——哈希集,是由 HashMap 实现的。通过一个HashMap存储元素,元素是存放在HashMap的Key中,而Value统一使用一个Object对象。

LinkedHashSet -- 其底层是基于LinkedHashMap来实现的,有序,继承自HashSet。

Map提供了一种映射关系,元素是以键值对(key-value)的形式存储的;

HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;它保留插入的顺序,如果需要输出的顺序和输入时的相同

SortMap ,是根据其键的自然顺序进行排序

TreeMap, 实现SortMap接口,底层采用 “红黑树”算法实现、

HashMap 与 Hashtable 与 LinkedHashMap 与  TreeMap 的区别 :

HashMap : 允许有一条记录 键值为NULL,允许多条记录的值为Null,不支持线程的同步;多线程下,可能导致数据不一致。如需同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力.

Hashtable : 它不允许记录的键或者值为NULL;它支持线程的同步,任一时刻只有一个线程能写Hashtable,所以比HashMap慢。

LinkedHashMap : 保存了记录的插入顺序。它继承于HashMap、底层使用哈希表与双向链表来保存所有元素

TreeMap实现SortMap接口,内部实现是红黑树。

2.队列 和 堆栈

队列和堆栈有些相似,队列(双向链表)是先进先出,堆栈(单向链表)是后进先出。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容