java 集合框架 简单介绍

来源:互联网 发布:海康威视端口设置 编辑:程序博客网 时间:2024/05/17 07:30

问题:

1.集合框架是什么?
2.为什么需要集合框架,如果没有集合框架,会怎样?
3.使用了那种设计模式?
4.集合框架的核心算法分析

1.集合框架是什么?
集合框架是对常用的数据结构和算法进行封装的聚合体。
数据结构有: 数组,链表,哈希,树,栈,队列…………。
算法:插入排序,快速排序,归并排序……….

2.为什么需要集合框架,如果没有集合框架会怎样?
为了提高程序的性能,java提供了对常用数据结构和算法的分析,使程序员更加关注于实现业务逻辑。 避免自己实现数据结构和算法。节省开发时间。 如果没有集合框架,那么我们要自己封装数据结构和算法,并且由于我们对算法理解的不够深入容易导致程序性能下降。
3. 使用了那种设计模式? 迭代器模式

先来看看集合框架的架构图:

这里写图片描述

  1. collection 接口及其实现类
  2. map接口及其实现类
  3. 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

0 0
原创粉丝点击