类集框架图解:
前言:
数据结构对程序设计有着深远的影响,在面向过程的c语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含对该数据结构操作的方法。
在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架。
Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率。
- 什么是框架:类库的集合
- 集合框架:用来表示和操作的统一的架构,包含了实现集合的接口与类
- 集合:存放数据的容器
集合框架包含了两部分:一部分是接口,一部分是类 - 为什么会出现接口:因为集合框架中的很多类 功能是相似的【所以 用接口来规范类】
在集合框架中,接口Map和Collection 在层次结构没有任何亲缘关系,他们是截然不同的。
不要简单的认为集合类集就这些,jdk中集合类有很多这些不过是我们经常用到的而已
Collection、List、Set、Queue和Map都是接口(Interface),不是具体的类实现。
先说set和list:
set子接口:无序,不允许重复。
检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变(对应类有HashSet,TreeSet)list子接口:有序,可以有重复元素。
和数组类似,list可以动态增长,查找元素效率高,插入删除效率低,因为会引起其他元素位置改变。(相应类有ArrayList,LinkedList,Vector)
集合框架详解:
1、集合框架是为表示和操作集合而规定的一种体系结构。
2、任何集合框架都包括:对外的接口、接口的实现和集合运算的算法。
接口:即表示集合的抽象数据类型。接口提供了让我们对集合中所表示的内容进行单独操作的可能。
实现:也就是集合框架中接口的具体实现。实际它们就是那些可复用的数据结构。
算法:在一个实现了某个集合框架中的接口的对象身上完成某种有用的计算的方法,例如查找、排序等。这些算法通常是多态的,因为相同的方法可以在同一个接口被多个类实现时有不同的表现。事实上,算法是可复用的函数
3、集合框架对我们编程的好处
1)它减少了程序设计的辛劳
集合框架通过提供有用的数据结构和算法使你能集中注意力于你的程序的重要部分上,而不是为了让程序能正常运转而将注意力于低层设计上。通过这些在无关API之间的简易的互用性,使你免除了为改编对象或转换代码以便联合这些API而去写大量的代码。
它提高了程序速度和质量
集合框架通过提供对有用的数据结构和算法的高性能和高质量的实现使你的程序速度和质量得到提高。因为每个接口的实现是可互换的,所以你的程序可以很容易的通过改变一个实现而进行调整。另外,你将可以从写你自己的数据结构的苦差事中解脱出来,从而有更多时间关注于程序其它部分的质量和性能。
2)减少去学习和使用新的API 的辛劳
许多API天生的有对集合的存储和获取。在过去,这样的API都有一些子API帮助操纵它的集合内容,因此在那些特殊的子API之间就会缺乏一致性,你也不得不从零开始学习,并且在使用时也很容易犯错。而标准集合框架接口的出现使这个问题迎刃而解。
减少了设计新API的努力
设计者和实现者不用再在每次创建一种依赖于集合内容的API时重新设计,他们只要使用标准集合框架的接口即可。
3)集合框架鼓励软件的复用
对于遵照标准集合框架接口的新的数据结构天生即是可复用的。同样对于操作一个实现了这些接口的对象的算法也是如此。 有了这些优点,并通过合理的使用,它就会成为程序员的一种强大的工具。不过,从历史上来看,集合大多其结构相当复杂,也就给它们一个造成极不合理的学习曲线的坏名声。但是,希望Java2的集合框架能缩短你的学习曲线,从而快速掌握它。 在许多高级语言中的数组其实也是集合的一种简单实现,比如C,C++,Pascal和Java。数组保存着相同类型的多个值,它的长度在数组被创建时就固定下来,建立之后就无法改变。如果你需要一种大小能动态改变的存储结构,数组就不适合了,这时集合框架就有了用武之地了。
4、在java中,其java.util中的工具接口和类都是一类集合,你应用其可以通过一个类型的接口定义一个类型的对象集合,这样,你可以很方便的对一类有着相似特点的对象操作,而且由于其是接口的对象,因此很容易拓展。
总的来说,集合框架可以帮助你很好的应用其数据结构,增加代码的可操作性和可复用性。你可以好好看看数据结构,然后对照着看看其集合框架中的接口,或者你也可以学学设计模式,就能对这种好处更能理解了
- 集合框架好处简答:
1 使用核心集合类降低开发成本,而非实现我们自己的集合类。
2 随着使用经过严格的测试的集合框架类,代码质量会得到提高。
3 通过使用jdk附带的集合类,可以降低代码维护成本。
4 复用性和可操作性。