概述
问题:
1.集合框架是什么?
2.为什么需要集合框架,如果没有集合框架,会怎样?
3.使用了那种设计模式?
4.集合框架的核心算法分析
1.集合框架是什么?
集合框架是对常用的数据结构和算法进行封装的聚合体。
数据结构有: 数组,链表,哈希,树,栈,队列…。
算法:插入排序,快速排序,归并排序…
2.为什么需要集合框架,如果没有集合框架会怎样?
为了提高程序的性能,java提供了对常用数据结构和算法的分析,使程序员更加关注于实现业务逻辑。 避免自己实现数据结构和算法。节省开发时间。 如果没有集合框架,那么我们要自己封装数据结构和算法,并且由于我们对算法理解的不够深入容易导致程序性能下降。
3. 使用了那种设计模式? 迭代器模式
先来看看集合框架的架构图:
- collection 接口及其实现类
- map接口及其实现类
- iterator接口及其实现类
4.工具类
1.collection
接口主要实现 list和set数据结构。
list: 存放的数据可以重复 eg: 1 ,3,1 list 是可以的
set: 存放的数据是唯一 eg 1,3,1 set 只会存 1,3 这两个值。
2.map
接口主要实现 map
map 存放数据 key ,value 键-值对。
3.iterator 迭代器模式
为了使用统一的接口对数据进行遍历。
4.工具类
collections Arrays
简要的的UML(union mode language 统一建模语言)类图如下:
实现的数据结构:
集合设计思路:
最顶层接口抽象出最有共性的方法,然后下一层可以使用抽象类实现一小部分共性方法。期间抽象类和接口交替出现。
顶层接口: collection 使用了default method 是java8推出的新特性。(为了避免对已存的结构进行太大的变化,须知现实世界的复杂性,软件的发展是人对世界的一个认识过程。)
集合中使用的技术: 内部类(iterator 迭代器实现,default方法,封装,继承,多态,各种算法的实现。
首先要明白没有最优的数据结构和算法,只有最适合应用场景的数据结构和算法。
例如以下 ArrayList 和LinkedList 的比较
ArrayList LinkedList
动态数组 双链表
操作相比慢,因为使用的是数组,如果 操作相比是块的,因为实现使用的是链表,删
删除数组和插入数组需要移动整个数组。 除和插入元素很快。
ArrayList和LinkedList 的本质区别在于 数组和链表的区别。优缺点也是数组和链表的区别。
区分: vector和ArrayList 的本质区别是 verctor 是线程安全的,ArrayList不是线程安全的。
迭代器模式和具体算法分析,不再本篇中介绍,会在后续单独写篇博文分享给大家。
部分参考:
http://blog.csdn.net/lcore/article/details/8868943#t12
http://www.javatpoint.com/collections-in-java
最后
以上就是娇气外套为你收集整理的java 集合框架 简单介绍的全部内容,希望文章能够帮你解决java 集合框架 简单介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复