Java基础教程

第一章: 开启Java学习之旅

第二章: 掌握计算机基础知识

第三章: 掌握命令行基础知识

第四章: 我的第一个Java程序

第五章: Java编程必备基础

第六章: Java编程的核心:控制结构

第七章: Java面向对象基础

第八章: Java面向对象进阶

第九章: Java字符串类型

第十章: Java数组与数据结构

第十一章: Java高级数据结构

第十二章: Java并发编程基础

首页 > Java基础教程 > 第十一章: Java高级数据结构 > 11.1节: Java中的容器结构

11.1节: Java中的容器结构

薯条老师 2021-12-24 12:53:42 290845 0

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python小班办得很好,学员的平均就业薪资有11K。线下小班培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

11.1.1 理解容器类型

编程语言中的变量就是一种容器,其作为程序中的基本存储单元,用来存储数据。这里的数据可以是值,也可以是地址。

值与地址并没有明确的边界,因为地址本身也是值。通常说的值是直接使用的数据值,比如整型值1,浮点值2.0,字符串值"Java"。而地址是对象所对应的内存空间的首字节编号,在程序中操作内存地址,也是以值的形式来传递和赋值的。在Java中构造对象时,实质返回的是对象的地址,变量通过该地址来引用和操作对象。

变量是值的容器,而本节教程要讲解的容器类型则是对象的容器。Java中的容器类型用来存储和管理对象。

11.1.2 Java内置容器

Java的内置容器可分为两大类,一类是Collection, 一类是Map,这两大容器类型都是接口。

Java中的容器是对常用数据结构的抽象,比如顺序表,链表,哈希表等。有C++ STL编程经验的同学一定不会对容器感到陌生。

11.1.3 Collection容器

关于Collection容器,在Java文档中已经描述的很清楚:

A collection represents a group of objects, known as its elements. Some collections allow duplicate elements and others do not. Some are ordered and others unordered。

Java中的Collection容器是一组对象的集合。一些集合中的元素可以包含重复值,另外一些集合中的元素不能有重复值。一些集合中的元素按一定顺序排列,另外一些集合中的元素则是无序排列的。那么,Collection中的哪些集合可以包含重复值,不能有重复值,哪些集合按一定顺序排列,无序排列呢?为此,我们要学习Collection的子类型,这些子类型都是对常用数据结构的抽象。

Collection的子类型如下表所示:

子类型

描述

List

对线性表的抽象,List中可以包含重复值。元素按插入顺序进行排列。

Queue

对队列结构的抽象,可以包含重复值。元素按FIFO的方式进行排列

Stack

对栈结构的抽象,可以包含重复值。元素按LIFO的方式进行排列

Set

    对集合的抽象,Set中不能包含重复值,元素是无序排列的。

读者需注意,以上子类型都是接口。

11.1.4 Map容器

Java中的Map容器代表的是键值对的映射结构。映射结构不难理解,比如一本书的目录就是映射结构,目录中定义了章节到页码的映射。使用映射结构可以大幅加快查询速度,一本书如果没有目录,那么我们必须从书籍的第一页开始,一页一页地查找指定的章节。有了目录以后,就可以先在目录中查找指定章节的页码,然后再直接翻到指定的页面。Map容器的常用子类型如下表所示:

子类型

描述

HashMap

基于散列实现的映射结构,键的排列是无序的。

TreeMap

基于树结构实现的映射结构,键按插入顺序进行排列。

读者需注意,以上子类型都是类。对于这些类型,读者可以直接在IDEA中查看其源码。

用import来导入某一个类型,比如导入HashMap,导入语法为import java.util.HashMap。然后按下键盘的CTRL键,并鼠标点击HashMap即可进入类的源码文件。

本节的目的是帮助读者梳理Java内置容器的常用类型及子类,了解其主要的特性,有个基本认识。关于每一类容器的子类型数据结构及用法会在后面的教程中详细讲解。

11.1.5如何导入容器

Collection以及Map容器均在java.util包中定义,我们在编写Java程序时可直接通过import语句来导入这些容器及其子类型。例如导入Collection下的Queue容器:

import java.util.Queue;

11.1.6 课后习题

(1) 简述你对容器的理解

(2) Java的内置容器有哪几类?

(3) 如何理解Java中的容器是对常用数据结构的抽象?

(4) 将本节介绍的容器类型及其继承的子类型画成一张知识脑图。

11.1.7 最具实力的小班培训

来这里参加Python和Java小班培训的学员大部分都找到了很好的工作,平均月薪有11K,学得好的同学,拿到的会更高。由于是小班教学,所以薯条老师有精力把每位学员都教好。打算参加线下小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:

关注微信公众号.jpg




欢迎 发表评论: