Java入门 - 高级教程 - 01.数据结构
原文地址:http://www.work100.net/training/java-data-structure.html
更多教程:光束云 - 免费课程
数据结构
序号 | 文内章节 | 视频 |
---|---|---|
1 | 概述 | |
2 | 枚举(Enumeration) | |
3 | 向量(Vector) | |
4 | 栈(Stack) | |
5 | 字典(Dictionary) | |
6 | 哈希表(Hashtable) | |
7 | 属性(Properties) |
请参照如上章节导航
进行阅读
1.概述
Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:
- 枚举(
Enumeration
) - 位集合(
BitSet
) - 向量(
Vector
) - 栈(
Stack
) - 字典(
Dictionary
) - 哈希表(
Hashtable
) - 属性(
Properties
)
以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection
),我们后面再讨论。
2.枚举(Enumeration)
枚举(Enumeration
)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。
例如,枚举定义了一个叫 nextElement
的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。
3.向量(Vector)
向量(Vector
)类和传统数组非常相似,但是 Vector
的大小能根据需要动态的变化。
和数组一样,Vector
对象的元素也能通过索引访问。
使用 Vector
类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。
4.栈(Stack)
栈(Stack
)实现了一个后进先出(LIFO
)的数据结构。
你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。
当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。
5.字典(Dictionary)
字典(Dictionary
) 类是一个抽象类,它定义了键映射到值的数据结构。
当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用 Dictionary
。
由于 Dictionary
类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。
6.哈希表(Hashtable)
Hashtable
类提供了一种在用户定义键结构的基础上来组织数据的手段。
例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。
哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。
7.属性(Properties)
Properties
继承于 Hashtable.Properties
类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。
Properties
类被许多Java类使用。例如,在获取环境变量时它就作为 System.getProperties()
方法的返回值。
下一篇:集合
Java入门 - 高级教程 - 01.数据结构的更多相关文章
- Java入门 - 高级教程 - 02.集合
原文地址:http://www.work100.net/training/java-collection.html 更多教程:光束云 - 免费课程 集合 序号 文内章节 视频 1 概述 2 集合接口 ...
- Java入门 - 高级教程 - 03.泛型
原文地址:http://www.work100.net/training/java-generic.html 更多教程:光束云 - 免费课程 泛型 序号 文内章节 视频 1 概述 2 泛型方法 3 泛 ...
- Java入门 - 高级教程 - 04.序列化
原文地址:http://www.work100.net/training/java-serialization.html 更多教程:光束云 - 免费课程 序列化 序号 文内章节 视频 1 概述 2 序 ...
- Java入门 - 高级教程 - 05.网络编程
原文地址:http://www.work100.net/training/java-networking.html 更多教程:光束云 - 免费课程 网络编程 序号 文内章节 视频 1 概述 2 Soc ...
- Java入门 - 高级教程 - 06.邮件收发
原文地址:http://www.work100.net/training/java-email.html 更多教程:光束云 - 免费课程 邮件收发 序号 文内章节 视频 1 概述 2 发送一封简单的邮 ...
- Java入门 - 高级教程 - 07.多线程
原文地址:http://www.work100.net/training/java-multi-threading.html 更多教程:光束云 - 免费课程 多线程 序号 文内章节 视频 1 概述 2 ...
- Java入门 - 高级教程 - 08.Applet
原文地址:http://www.work100.net/training/java-applet.html 更多教程:光束云 - 免费课程 Applet 序号 文内章节 视频 1 概述 2 Apple ...
- Java入门 - 高级教程 - 09.文档注释
原文地址:http://www.work100.net/training/java-documentation.html 更多教程:光束云 - 免费课程 文档注释 序号 文内章节 视频 1 概述 2 ...
- Java之旅_高级教程_数据结构
摘自:http://www.runoob.com/java/java-data-structures.html 了解即可 Java 数据结构 Java 工具包提供了强大的数据结构.在Java中的数据结 ...
随机推荐
- 修改github上的项目语言类型
当在github上上传一个项目时,可能会出现一个问题就是项目代码类型是自动生成的,可能与我们实际项目代码种类不匹配,此时就需要修改项目语言类型了. 由于无法直接更改,所以用到此方法: 在你的项目根目录 ...
- C# 简单读取文件
本文告诉大家如何使用最少的代码把一个文件读取二进制,读取为字符串 现在写了一些代码,想使用最少代码来写简单的读文件,所以我就写了这个文章 读取文件为二进制 private byte[] ReadFil ...
- Linux内核接口特定的类型
内核中一些通常使用的数据类型有它们自己的 typedef 语句, 因此阻止了任何移植性问 题. 例如, 一个进程标识符 ( pid ) 常常是 pid_t 而不是 int. 使用 pid_t 屏蔽了任 ...
- java.util.Date和jdk1.8新时间API比拼
旧的时间和日期的API的缺陷 Java 的 java.util.Date 和 java.util.Calendar 类易用性差,不支持时区,而且都不是线程安全的. Date如果不格式化,打印出的日期可 ...
- C#面试题整理(带答案)
1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何 ...
- springBoot从入门到源码分析
先分享一个springBoot搭建学习项目,和springboot多数据源项目的传送门:https://github.com/1057234721/springBoot 1. SpringBoot快速 ...
- 搭建个人/企业私有云盘-seafile
一.安装依赖组件 安装前的准备工作安装 Seafile 服务器之前,请确认已安装以下软件MariaDB 或者 MySQL 服务器 (MariaDB 是 MySQL 的分支),python 2.7 (从 ...
- 【Git】git-filter-branch - Rewrite branches
1.命令使用场景 ①Removing sensitive data from a repository(https://help.github.com/en/github/authenticating ...
- 深入Oracle的left join中on和where的区别详解
-- from http://blog.itpub.net/30175262/viewspace-1472060/ 今天遇到一个求某月所有天数的统计结果,如果某日的结果是0也需要显示出来,即: 日期 ...
- 006.MFC_对话框_复选框_单选钮
对话框和控件复选框单选框分组框示例:三原色画图 一.建立名为Demo2的MFC工程,按照下图添加控件 并修改2个Group Box Caption属性分别为颜色.外观 修改3个Check Box Ca ...