Java集合框架源码详解系列(一)

Java 专栏收录该内容
4 篇文章 0 订阅

 写在前面:大家好!我是AC-fun,我的昵称来自两个单词Acceptedfun。我是一个热爱ACM的蒟蒻。如果博客中有不足或者的错误的地方欢迎在评论区或者私信我指正,感谢大家的不吝赐教。我的唯一博客更新地址是:https://ac-fun.blog.csdn.net/。非常感谢大家的支持。一起加油,冲鸭!
用知识改变命运,用知识成就未来!加油 (ง •̀o•́)ง (ง •̀o•́)ง

前言

 之前写过关于 C++ STL 的四篇文章,现在开始写一下关于Java集合框架的文章,该系列博客将会写很长时间。不管是C++的STL也好,Java的集合框架也好,这两者其实都是将一些基本的数据结构进行了封装实现,从现在开始博主将带领大家遨游在Java集合框架的源码世界,准备好了吗?Go!!!

什么是集合框架

 在前言中也提到过,其实 Java 的集合框架(也叫容器)就是对一些基本的数据结构进行了封装实现。开发人员希望 Java 的集合框架规模小而且容易学习,不像 C++ STL 那样复杂,又能具有 C++ STL 率先提出的“泛型算法”的优点。

 Java的集合框架不能仅仅满足于功能的实现,还必须具有以下几个优点:

  • 高性能
  • 允许不同类型的集合,以类似的方式进行操作,操作简单
  • 易于适应和扩展

 为了实现如上要求,Java集合框架围绕着一组标准 接口 进行设计,Java集合类库将接口(interface)与实现(implementation)分离。
Java集合框架图

数组和集合框架的区别

数组和集合框架的主要区别如下:

  1. 数组只能存储相同类型的数据,如 int[] arr=new int[10]; arr 只能保存整数,而集合可以存储不同类型的数据。
  2. 数组可以保存基本数据类型的数据,也可以保存引用数据类型的数据,而集合框架只能保存对象(集合框架里面的数据都是对象)。
  3. 数组的弊端:**Student[] stu=new Student[10];**这个数组只能保存10个学生信息数组的长度一旦定义,是不可改变的,而集合可以存储数量不确定的数据。

集合框架的分支

 集合框架主要有两个基本的接口:CollectionMap。下面分别介绍一下两者。

Collection接口

 该接口实现了单列集合,用来存储一个个对象。即该接口的实现类都是像数组一样存储一个一个的数据,数组中的每个位置值存储一个数据。实现 Collection 接口有三个子接口 List 接口、Set 接口以及 Queue接口。

 实现 List 接口的类有:ArrayList、LinkedList、Vector

 实现 Set 接口的类有 HashSet、TreeSet、EnumSet、LinkedHashSet

 实现 Queue 接口的类有:ArrayDeque、PriorityQueue

 在之后的文章里面会对这些类进行一一详解,这里只列一下名字。
Collection

Map接口

Map 接口实现了多列集合,用来存储一对 (key-value) 一对的数据。实现 Map 接口的类有:HashMap、TreeMap、EnumMap、LinkedHashMap、WeakHashMap、IdentityHashMap、Hashtable(已被淘汰)、Properties。在之后的文章里会对这些类一一进行源码详解,这里也只列一下名字。
Map


未完待续,持续更新中……

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页

打赏

AC-fun

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值