Java集合框架(Collection Framework)学习之 Collection与Map概貌

写过Java的人都知道Java集合类,也用过Java集合类。Java集合类位于 java.util 这个包下,就像它的包名暗示的那样,Java集合类就是一套工具。它就像工匠的工具箱同样,它能给使用它的人提供便利与效率。正所谓”工欲上其事,必先利其器。“ 若是咱们想更好地、更高效率地完成任务,咱们须要熟悉咱们手上的工具。Java集合类就是这样的工具,只要咱们可以熟练使用它,它就能够显著地提升咱们的工做效率、让咱们事半功倍。html

先说说我对Java集合框架的理解: Java集合框架不是什么高深的技术,也不是什么苦涩的知识,它只是把经常使用的数据结构和算法集合在一块儿,让咱们不用重复造轮子,能更轻松地、更高效地处理数据。就像就像Oracle的Java教程说的那样:Java集合框架经过提供高性能、高质量的数据结构和算法来提升程序的速度和质量并减轻你的编程负担。因此咱们没必要惧怕学不会Java集合框架。既然是工具,多用几回就能够熟能生巧了。固然有数据结构基本能更轻松地掌握它。java

稍微学习过Java集合类都知道,Java集合类这个工具箱真的太多工具了,不只有List、有Map、有Set等。List中又有ArrayList、LinkedList等,Map中又有HashMap、TreeMap等,Set中又有。。。 此刻你是否想说:”WTF,这么多怎么学?哥不学了,洗洗睡去吧。“ 但我想说,少年,稍安勿躁!万事都有规律,只要掌握了规律再多的东西都能掌握。算法

Collection与Map的区别

Java集合类分为两大类:Collection和Map。为何要这样分类呢?编程

先看Collection。Collection翻译为中文是”集合“的意思。学过数学都知道,集合是一类元素组成的集体,它的每个单位元素都是单一的个体。咱们能够把Collection当作是一个装着球的格子箱,箱里的每个格子只能放一个球:api

Map。Map有”映射“的意思。根据百度百科对 映射 的定义 ,咱们知道映射是成对出现的,有 才有 :)。因此映射的单位元素都是一对有关联的个体。咱们一样能够把Map当作是一个装着球的格子箱,不一样的是此次箱里的每一个格子装的是两个有关联的球:数据结构

总结oracle

  • Collection: 单一个体组成的集合,每一个单位只能包含一个元素。
  • Map: 一对有关联的个体组成的集合,每一个单位都是一对相关联的元素。

集合类概貌

分析完Collection与Map的区别后咱们分别来看看它们的概貌,以便咱们更好地学习它们以及它们的子集。(如下的图中,红色的类,白色的接口。为何把接口和类分开呢?由于咱们在实际操做的时候通常是实例化类的,接口通常用来向上转型的。你总不能new个接口吧?并且咱们主要学的也是具体的类而不是接口)框架

咱们先看Collection与Map的层次图:数据结构和算法

  • Collection:
    工具

  • Map:

这种图有什么做用呢?这种图对咱们学习Java集合大有裨益。我总结了几点:

  1. 咱们在学习集合类的时候,能够参考图中的层次关系自上而下地学习,先学习顶层的类再学习下面的类。这样一来,咱们就能够把共有的方法一块儿学了,在学习具体的类时只需学习它特有的方法。
  2. 在使用具体的类时也有好处,好比,使用ArrayList时,咱们知道他属于Collection而Collection添加元素的共有方法是 add 。使用HashMap时,咱们又知道它书属于Map而Map添加元素的共有方法是 put 。这样咱们就不会把它们添加元素的方法搞混了。
  3. 方便咱们记忆。在选择数据结构是,咱们能够先分析是Collection仍是Map合适。而后在从上往下回忆有哪些类可使用。
  4. 能让咱们更了解集合类。就我我的来讲,在使用ArrayList时若是不清楚他的层次树总感受”不太安心“。这个类就像凭空出现的同样,不知道它从哪里来又将去到哪。若是有它的层次图就有一种“全部的障碍都消失了”的感受,有掌握全局的快感。
  5. 不知道。因为我的经验有限,暂时没想到其余的做用:)

最后给出Collection与Map接口定义的接口文档(方便之后本身查看:))

好了,今天就到这,以后在来总结集合类的其余具体子集!!

相关文章
相关标签/搜索