码迷,mamicode.com
首页 > 编程语言 > 详细

Java Review (二十三、集合-----概述)

时间:2020-06-06 00:40:35      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:否则   java集合框架   核心技术   实现类   重复   view   框架   插入图片   header   

@

目录


    Java 最初版本只为最常用的数据结构提供了很少的一组类:Vector、 Stack、Hashtable、BitSet 与 Enumeration 接口。

    随着 Java SE 1.2 的问世,设计人员感到是推出一组功能完善的数据结构的时机了。面对一大堆相互矛盾的设计策略,他们希望让类库规模小且易于学习, 而不希望像 C++ 的“ 标准模版库” (STL) 那样复杂,但却又希望能够吸收 STL 率先推出的“ 泛型算法” 所具有的优点。

    他们希望将传统的类融人新的框架中。与所有的集合类库设计者一样, 他们必须做出一些艰难的选择,于是,在整个设计过程中,他们做出了一些独具特色的设计决定。


    与现代的数据结构类库的常见情况一样, Java 集合类库也将接口( interface) 与 实现(implementation) 分离。

    Java 的集合类主要由两个接口派生而出 : Collection 和 Map , Collection 和 Map 是 Java 集合框架的根接口,这两个接口又包含了一些子接口或实现类 。

    图一:Java集合体系

    技术图片

    图二所示是 Collection 接口、子接口及其实现类的继承树 :


    图二:Collection集合体系继承树

    技术图片

    图二显示了 Collection 体系里的集合,其中粗线圈出的 Set 和 List 接口是 Collection 接口派生的两个子接口,它们分别代表了无序集合和有序集合; Queue 是 Java 提供的队列实现。

    图三所示是 Map 体系的继承树,所有的 Map 实现类用于保存具有映射关系的数据 。

    图三:Map集合体系继承树

    技术图片

    图三显示了 Map 接口的众多实现类 ,这些实现类在功能、用 法上存在一定 的差异,但它们都有一个功能特征: Map保存的每项数据都是 key-value 对,也就是由 key 和 value 两个值组成 。

    就像成绩单:语文-79 , 数学-80 , 每项成绩都由两个值组成,即科目名和成绩 。 对于一张成绩表而言 ,科目通常不会重复,而成绩是可重复的,通常习惯根据科目来查阅成绩,而不会根据成绩来查阅科目 。

    Map 与此类似, Map里的 key 是不可重复的, key 用于标识集合里 的每项数据,如果需要查阅 Map中的数据时,总是根据 Map 的 key 来获取。

    对于图二和图 三中粗线标识的 4 个接口,可以把 Java 所有集合分成三大类 ,其中 :

    • Set 集合类似于一个罐子 ,把一个对象添加到 Set 集合时, Set 集合无法记住添加这个元素的顺序,所以 Set 里的元素不能重复(否则系统无法准确识别这个元素) ;
    • List 集合非常像一个数组 ,它可以记住每次添加元素的顺序 、且 List 的长度可变;
    • Map 集合也像一个罐子,只是它里面的每项数据都由两个值组成 。


    图四:三种集合示意图

    技术图片






    参考:
    【1】:《Java核心技术 卷一》
    【2】:《疯狂Java讲义》
    【3】:Java集合框架|菜鸟教程

    Java Review (二十三、集合-----概述)

    标签:否则   java集合框架   核心技术   实现类   重复   view   框架   插入图片   header   

    原文地址:https://www.cnblogs.com/three-fighter/p/13052917.html

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!