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

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

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

Collection与Map的区别

Java集合类分为两大类:Collection和Map。为什么要这样分类呢?

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

Map。Map有”映射“的意思。根据百度百科对 映射 的定义 ,我们知道映射是成对出现的,有 才有 :)。所以映射的单位元素都是一对有关联的个体。我们同样可以把Map看成是一个装着球的格子箱,不同的是这次箱里的每个格子装的是两个有关联的球:

总结

  • 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接口定义的接口文档(方便以后自己查看:))

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

Java集合框架(Collection Framework)学习之 Collection与Map概貌的更多相关文章

  1. java集合框架(Collections Framework)

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. Java—集合框架 List和Set的contains()以及Map的containsKey()、containsValue()

    如何判断集合中是否存在某个元素——contains() 1.List的contains(obj)方法 实际上,List调用contains(Object obj)方法时,会遍历List中的每一个元素, ...

  3. (Collection, List, 泛型)JAVA集合框架一

    Java集合框架部分细节总结一 Collection List 有序,有下标,元素可重复 Set 无序,无下标,元素不可重复 以上为Collection接口 以ArrayList为实现类实现遍历:增强 ...

  4. [转]Java - 集合框架完全解析

    数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵 ...

  5. Java - 集合框架完全解析

    来自:http://www.jianshu.com/p/63e76826e852 数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织 ...

  6. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  7. Java集合框架类

    java集合框架类图 Collection接口(List.Set.Queue.Stack):

  8. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  9. Java集合框架总结

    java集合框架主要分为实现了Collection接口的List和Set.映射接口Map. |-- List 有序,元素都有索引,可重复. |-- Set 无序,不可以存储重复的元素. |-- Map ...

  10. Java—集合框架 Collections.sort()、Comparable接口和Comparator接口

    Collentions工具类--java.util.Collections Collentions是Java集合框架中,用来操作集合对象的工具类,也是Java集合框架的成员,与List.Map和Set ...

随机推荐

  1. SpringData

    1.什么是SpringData?Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库.Map-Reduce 框架.云数据服务等等:另外也包含对关 ...

  2. springboot整合最新版dubbo以及dubbo-admin的安装

    一.安装前准备 由于dubbo被阿里捐献给了apache,这次安装admin时,参考网上的资料,地址还是停留在之前的链接,踩了不少坑,这里记录下. dubbo-admin下载地址: 地址一:https ...

  3. spring security的原理及教程

    spring security使用分类: 如何使用spring security,相信百度过的都知道,总共有四种用法,从简到深为:1.不用数据库,全部数据写在配置文件,这个也是官方文档里面的demo: ...

  4. UIImage分类,设置边框

    #import "UIImage+image.h" @implementation UIImage (image) + (UIImage *)imageWithBorder:(CG ...

  5. 49. Group Anagrams同义词合并

    [抄题]: Given an array of strings, group anagrams together. Example: Input: ["eat", "te ...

  6. cs api测试

    更新磁盘方案 http://192.168.150.16:8900/client/api?command=updateDiskOffering&id=199e3be4-2af1-47a3-9f ...

  7. CentOS Mysql安装配置

    一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数 ...

  8. Openssl dsaparam命令

    一.简介 dsaparam指令用来生成和操作dsa参数 二.语法 openssl dsaparam [-inform DER|PEM] [-outform DER|PEM] [-in filename ...

  9. java的web.xml中<url-pattern>配置[转]

    <servlet-mapping> <servlet-name>downLoadFile</servlet-name> <url-pattern>*.l ...

  10. linux查看操作系统版本信息

    linux查看操作系统版本信息  摘自:https://www.cnblogs.com/vaelailai/p/7545166.html 一.linux下如何查看已安装的centos版本信息: 1.L ...