Java 数据结构

Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:

枚举(Enumeration)

位集合(BitSet)

向量(Vector)

栈(Stack)

字典(Dictionary)

哈希表(Hashtable)

属性(Properties)

以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论。

枚举(Enumeration)

枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。

位集合(BitSet)

位集合类实现了一组可以单独设置和清除的位或标志。

该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。

向量(Vector)

向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。

和数组一样,Vector对象的元素也能通过索引访问。

使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。

栈(Stack)

栈(Stack)实现了一个后进先出(LIFO)的数据结构。

你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。

当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。

关于该类的更多信息,请参见栈(Stack)。

字典(Dictionary)

字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。

当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。

由于Dictionary类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。

哈希表(Hashtable)

Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。

例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。

哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。

属性(Properties)

Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。

Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。

java 结构数据结构_Java 数据结构相关推荐

  1. java 头尾 队列_Java数据结构之队列(动力节点Java学院整理)

    队列的定义: 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表. (1)允许删除的一端称为队头(Front). (2)允许插入的一端称为队尾(Rear). (3)当队列中 ...

  2. java 数据队列_Java 数据结构 - 队列

    Java 数据结构 - 队列 我们今天要讲的数据结构是队列,比如 Java 线程池任务就是队列实现的. 1. 什么是队列 和栈一样,队列也是一种操作受限的线性结构.使用队列时,在一端插入元素,而在另一 ...

  3. java 数据结构_Java数据结构学习方法

    Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? 数据结构: Data_Structure,它是储存数据的一种结构体,在此结构中储存一些数据,而这些数据之间有一定的关系. 而各数据元 ...

  4. java链表模型_Java数据结构和算法(七)——链表

    前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷.在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造 ...

  5. java中数组的数据结构_Java数据结构与算法(一)--数组

    目录 数组是应用最广泛的数据存储结构.它被植入大部分的编程语音.在Java中数组用来存放一种类型的集合. 1.数组的介绍 ①数组的声明 第一种方式: int[] arr = new int[10];/ ...

  6. java链表的数据结构_Java数据结构 获取链表(LinkedList)的第一个和最后一个元素

    Java数据结构 获取链表(LinkedList)的第一个和最后一个元素 以下实例演示了如何使用 LinkedList 类的 linkedlistname.getFirst() 和 linkedlis ...

  7. java link 使用_Java数据结构之简单的连接点(link)实现方法示例

    本文实例讲述了Java数据结构之简单的连接点(link)实现方法.分享给大家供大家参考,具体如下: 一.概述: 链接点由:数据和指向下个数据的指针构成 如图: 二.简单实现: package com. ...

  8. java 树的数据结构_Java数据结构之树(二叉树)

    一.概述 1.以二叉树为例熟悉树形结构,二叉树的定义如下: 1.1.二叉树:是结点有限的集合,这个集合或者是空,或者由一个根结点或两棵互不相交的称为左子树和右子树的二叉树组成. 二叉树是一个递归的定义 ...

  9. java数组数据结构_Java数据结构之数组

    自定义数组(面向对象编程): 直接上代码:package com.xingej.algorithm.datastructure.array; /** * 面向对象编程 * * 自定义类数组 * * 你 ...

最新文章

  1. Sentinel 高可用流量管理框架
  2. 新的UWP和Win32应用程序分发模型
  3. es6 Promise
  4. python读取hdf文件 高效_利用python读取MODIS hdf文件
  5. 抖音微信之争的真相:地盘之争,还是用户隐私之争?
  6. YbtOJ#20060-[NOIP2020模拟赛B组Day3]字串修改【模拟】
  7. javascript---parseInt(08)或parseInt(09)转换返回0的解决办法
  8. 安卓修改wifi已停用_手机连不上wifi显示已保存怎么回事【原因介绍】
  9. MySQL查询指定时间的数据
  10. 防爆知识:危险场所划
  11. git中clone出来项目,导入到eclipse并运行web项目
  12. 明日之后哪个服务器人最多_明日之后,末日寻宝活动上线,远星城宝箱位置攻略...
  13. Machine Learning Books List
  14. navicat for mysql 10.1.7下载破解(2017.12.30)
  15. FastReport VCL开发人员手册:自定义报表组件编写
  16. AIX平台安装python
  17. 模拟鼠标键盘操作,含硬件模拟技术
  18. 深入了解物联网,这几个物联网技术了解吗?
  19. 国家地址json记录
  20. npm install 报错:no such file or directory, scandir '..\node-sass\vendor'

热门文章

  1. mysql性能优化之sql语句优化最强合集
  2. H264码流打包分析(精华)
  3. 替换软连接导致的问题
  4. Android原生(Native)C开发之二 framebuffer篇
  5. 设计模式之间可以相互功能替换吗?
  6. MySQL常见面试题解析
  7. Spark的Yarn模式及其案例
  8. Tableau 绘制折线图
  9. Windows中几个内存相当的指标
  10. Spark2.2.0分布式集群安装(StandAlone模式)