【Java集合系列】---整体框架

集合--童年的美好时光java

集合,突然让小编想起那段美好的学生时光,集合第一次碰见她的时候,小编当年仍是一个懵懂的丫头,也未曾想过会在计算机的世界再次相遇,再回首,集合在数学中是一个基本概念,集合就是“一堆东西”,集合里面的“东西”叫作元素,由一个或多个元素所构成的叫作集合,又邂逅,计算机的世界中,集合是一组可变数量的数据项也多是0个的组合,这些数据项可能共享某些特征,须要以某种操做方式一块儿进行操做,通常来讲,这些数据项的类型都是相同的,或者基类相同(若使用的语言支持继承),列表或数组一般不认为是集合,由于其大小固定,可是事实上她经常在实现中做为某些形式的集合使用。编程

世界上本没有集合,由于有了这样的需求数组

世界上原本没有集合,可是因为有了这样的需求,因此有了集合。在编程的时候,经常须要集合中存放多个数据,固然咱们可使用数组来保存多个对象,可是数组的长度是不能够变化的,一旦在初始化数组的时候指定了数组的长度,则这个数组长度是不可变的,若是须要保存个数变化的数据,数组就有点无能为力了,并且数组没法保存具备映射关系的数据,如英语-90,数学-88,这种数据看上去像两个数组,可是这两个数组的元素之间存在着必定的关联关系,为了保存数量不肯定的数据,以及保存具备映射关系的数据,也称为关联数组,java提供集合类,集合类主要干的活儿就是保存、盛装其她数据,所以集合类也称为容器类。数据结构

故人--数组框架

要深刻理解集合,咱们首先要作的就是了解一下咱们的故人--数组,数组是大小固定的,而且同一个数组只能存放类型同样的数据,基本类型或者是引用类型,而java集合能够存储和操做数目不固定的一组数据,全部的JAVA集合都位于java.util包中,JAVA集合只能存放引用类型的数据,不能存放基本数据类型。java集合类是一种工具类,她能够用于存储数量不等的多个对象,并能够实现经常使用的数据结构,如栈、队列等等,除此以外,Java集合还能够用来保存具备映射关系的关联数组,java的集合大体上能够分为SetListMap三种体系,从JDK1.5之后,Java增长了Queue体系集合,表明一种队列集合实现。有人想有能够自动扩展的数组,因此有了List,有人想有没有重复的数组,因此有了set,有人想有自动排序的数组,因此有了TreeSet,因此任何事物都不是凭空的产生的,她但是都有本身存在的价值的哦`(*_*)函数

     Collection集合体系工具

  java集合主要能够划分为四个部分,ListSetMap、工具类(Iterator迭代器、Enumeration枚举类、ArraysVCollections),java的集合类主要由两个接口派生而来,CollectionMap,她们两个是集合框架的根接口,这两个接口又包含了一些子接口或实现类,咱们经过类图来帮助咱们理解他们之间的关系,首先咱们来看Collection集合体系的继承树,以下图所示:spa

       

上面的类图画的是Collection体系里的集合,其中SetList接口是Collection接口派生的两个子接口,她们分别表明了无序集合和有序集合,QueueJava提供的队列实现,有点相似于List。xml

Map集合体系对象

接着咱们来看Map体系的继承树,全部的Map实现类用于保存具备映射关系的数据。

            

上面的类图画的是Map接口的众多实现类,这些实现类在功能、用法上存在必定的差别,可是她们都有一个功能特征,Map保存的每项数据都是key-value对,也就是因为keyvalue两个值组成,就像前面介绍的英语-90,数学-88,每项成绩都是由2个值组成的,学科名称和成绩,对于一张成绩表而言,科目一般不会重复,可是成绩是能够重复的,一般习惯根据学科名称来查询成绩,而不会根据成绩来查询学科名称,Map也与此相似,Map里的key是不能够重复的,key用来标识集合里的每项数据,若是须要查询Map中数据时,老是根据Mapkey来获取。

Set&&List&&Map

根据上面的类图,咱们能够把java的全部集合分红三大类,其中Set集合类相似于一个糖罐子,把一个对象添加到Set集合里面的时候,Set集合没法记住添加这个元素的顺序,因此Set里面的元素不能重复,不然系统没法准确识别这个元素;List集合很是像一个数组,她能够记住每次添加元素的顺序,能够重复,只是List的长度可变;Map集合也像是一个糖罐子,只是她里面的每项数据都由两个值组成。若是访问List集合中的元素,能够直接根据元素的索引来进行访问;若是须要访问Map集合中的元素,能够根据每项元素的key来访问其value;若是访问Set集合中的元素,则只能根据元素自己来访问,这也是Set集合里元素不容许重复的缘由。前面咱们提到过,java集合主要能够划分为四个部分,ListSetMap、工具类(Iterator迭代器、Enumeration枚举类、Arrays(Collections),Iterator接口也是java集合框架的成员,但她与Collection系列、Map系列的集合不同,Collection集合系列和Map集合系列主要用于盛装其她对象,而Iterator则主要用于遍历即迭代访问Collection集合中的元素,Iterator对象也称为迭代器。Iterator是遍历集合的工具,咱们说Collection依赖于Iterator,是由于Collection的实现类都要实现iterator()函数,返回一个Iterator对象。除此以外,还有两个工具类ArraysCollections,她们是操做数据、集合的两个工具类。

小编寄语:该博文,小编主要简单介绍了java集合中的整体框架,从咱们学生时代的集合提及,到计算机中的集合,鲁迅说世界上本没有路,走的人多了也便有了路,今天小编说,世界上本没有集合,有了这样的须要,也是有了集合,有了上面的总体框架以后,接下来小编会对每一个类分别进行分析,但愿对有须要的小伙伴有帮助,还请小伙伴们多多指教,敬请期待`(*_*)