Collection框架浅谈之概述
前言
最近一段时间断断续续的在面试,其中被问到了Collection框架,于是对其资料进行了搜索,进行了一下梳理,跟大家一起分享一下。
正题
一、为什么会有Collection框架
早期是没有集合框架这一说的,因为当时有数组就可以了。但是随着Java的发展与市场的不断需求,就出现了集合框架,比如数组时存储基本数据类型的,当然也可以存储自定义类型,但是其长度必须是固定的,查询删除修改元素的时候,都必须通过角标。这就很不方便,为什么呢?因为你通过角操作数据,那么你怎么记着每个具体元素对应的角标呢?比如一个数组中有{d,b,t,g},等过段时间后,你怎么知道t在数组中的那个问题呢?
所以Java在早期就出现了原始的集合Vector,由于早期注重的是安全,所以其为线程安全的。但是随着市场需求的不断增多,效率就成了社会的主流,这时Vector就不能满足需求,就需要有新的效率高的集合来代替。
这就出现了集合框架,根据面向对象的思想,不可能让一个集合具有所有的优点,因为这不现实。所以就出现了多个不同的集合,这些不同的集合都有各自的特点,但又有共同的方面,所以为了让他们有归宿并且形成体系,就把他们共性的方面给抽取出来,形成他们的父类,让特征不同的集合继承,这样就有了集合框架。
二、Collection框架与数组的区别:
1.最大的区别集合框架存储的是引用数据类型,不能是基本数据类型
2.集合的长度是可变的,数组的是不可变的
三、Collection框架体系:
大体框架体系图:
较为具体的一张Collection框架体系图:
注:红色为接口,本图基于jdk6.0.
小结:
通过上面的描述我们对Collection框架有了个整体的了解,那么我们下篇就来继续讲述常用集合的特点。