1.什么是哈希表

它是一种高效的符合数据类型,可以包含变量、数组、结构体、指针、、对象、链表、哈希表等数据类型
特点
关键词与值对应,可以通过链表函数或关键字快速处理访问

2.创建哈希表

通过Hash()函数来创建,主要有四种格式
但是都是关键字keys和values对应

3.访问哈希表

访问哈希表是通过关键字来实现的
IDL> Hash_Ge=Hash("one",1.0,"blue",[255,0,0],"Pi",!DPI)
IDL> help,Hash_Ge
HASH_GE         HASH  <ID=1  NELEMENTS=3>
IDL> print,Hash_Ge["one"]1.00000
IDL> print,Hash_Ge["Pi"]3.1415927

4.哈希表添加

IDL> Hash_Ge=Hash("one",1.0,"blue",[255,0,0],"Pi",!DPI)
IDL> help,Hash_Ge
HASH_GE         HASH  <ID=1  NELEMENTS=3>
IDL> print,Hash_Ge["one"]1.00000
IDL> print,Hash_Ge["Pi"]3.1415927
IDL> Hash_Ge["black"]=100;这里添加了元素
IDL> print,Hash_Ge
one:        1.0000000
blue:      255       0       0
Pi:        3.1415926535897931
black:      100

5.哈希表的其他操作

5.1 关键字输出

可以调用Hash.Keys()函数

IDL> Hash_Ge=Hash("one",1.0,"blue",[255,0,0],"Pi",!DPI)
IDL> list=Hash_Ge.keys()
IDL> print,list
one
blue
Pi

5.2 关键字查询

就是查询有没有这个关键字,如果有返回1,没有返回0

IDL> Hash_Ge=Hash("one",1.0,"blue",[255,0,0],"Pi",!DPI)
IDL> print,Hash_Ge.HasKey("one","white");输入错误,单个关键字查询可以这样写
% HASH::HASKEY: Incorrect number of arguments.
% Execution halted at: $MAIN$
IDL> print,Hash_Ge.HasKey(["one","white"]);正确的写法,要用数组1       0

5.3 删除哈希表

Hash.Remove()

5.4 转换为结构体

IDL> Hash_Ge=Hash("black",0,"grey",128,"gray",128,"white",255)
IDL> struct_Ge=Hash_Ge.ToStruct()
IDL> help,Hash_Ge
HASH_GE         HASH  <ID=39  NELEMENTS=4>
IDL> help,struct_Ge
** Structure <1147d470>, 4 tags, length=8, data length=8, refs=1:WHITE           INT            255BLACK           INT              0GRAY            INT            128GREY            INT            128

5.5 哈希表组合

+来实现

5.6 哈希表比较

比较的返回结果是表中的共同元素或不同的元素

IDL> Hash1=Hash("Key1",1,"Key2",2,"Key3",3)
IDL> Hash2=Hash("Key1",1,"Key2",2,"anatherkey",5)
IDL> result=Hash1 EQ Hash2
IDL> print,result
Key2
Key1
IDL> result=Hash1 NE Hash2
IDL> print,result
Key3
anatherkey
IDL>

5.7 销毁哈希表

Obj_Destroy

```IDL> Obj_Destroy,Hash1
IDL> print,Hash1
<ObjHeapVar60>
IDL> help,Hash1
HASH1           OBJREF    = <ObjHeapVar60>

8、哈希表(Hash)相关推荐

  1. 纸上谈兵: 哈希表 (hash table)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! HASH 哈希表(hash table)是从一个集合A到另一个集合B的映射(map ...

  2. “chaos”的算法---之哈希表(HASH)算法详解

    [ 声明:版权所有,欢迎转载.  联系信箱:yiluohuanghun@gmail.com] 在数据查找中我们会想到很多不错的.行之有效的方法,大体分为以下几种,1.对于空间连续的数据采用二分查找法等 ...

  3. PHP关联数组和哈希表(hash table) 未指定

    PHP有数据的一个非常重要的一类,就是关联数组.又称为哈希表(hash table),是一种很好用的数据结构. 在程序中.我们可能会遇到须要消重的问题,举一个最简单的模型: 有一份username列表 ...

  4. 【散列表(哈希表) Hash Table(上)】:Word文档中的单词拼写检查功能是如何实现的?

    Word 这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在 Word 里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word 的这个 ...

  5. 学习数据结构笔记(8) ---[哈希表(Hash table)]

    B站学习传送门–>尚硅谷Java数据结构与java算法(Java数据结构与算法) 一般在java程序访问数据库时都会安排从内存的缓存层中取数据;之前的做法是自己写个哈希表,实现对数据的缓存. 哈 ...

  6. 哈希表Hash与JAVA集合类Map及其方法put()、getOrDefault()、keySet()、get()

    一.Map与HashMap() Map<Integer, Integer> map = new HashMap<>(); 二.Map.put() Map.put() 方法的作用 ...

  7. Hash+哈希表+HashMap+HashSet

    Hash+哈希表+HashMap+HashSet 哈希算法,是一类「算法」. 哈希表(Hash Table),是一种「数据结构」. 哈希函数,是支撑哈希表的一类「函数」. Map是映射/地图的意思,在 ...

  8. 哈希表(Hash Table)及散列法(Hashing)

    bigshuai 哈希 源地址 http://www.cnblogs.com/bigshuai/articles/2398116.html 哈希表(Hash Table)及散列法(Hashing) 数 ...

  9. 哈希表(Hash Table)原理及其实现

    原理 介绍 哈希函数构造 冲突处理 举例 拉链法 hash索引跟B树索引的区别 实现 原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据 ...

  10. 【Python算法】哈希存储、哈希表、散列表原理

    哈希表的定义: 哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中 ...

最新文章

  1. PaddleFluid和TensorFlow基本使用概念对比 | PaddlePaddle专栏
  2. pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷
  3. Uber无人车为何危险:长期忽视模拟器,只在意路测 | 内部声音
  4. 暑假学习打卡【3】——北理工乐学第三周作业
  5. Python实战:个人贷款计算器
  6. SecureCRT SecureFx 绿色破解版
  7. 2021抖音上热门技巧有哪些?
  8. 如何在WorkNC中快速建立坐标管理器
  9. 算法系列——寻找峰值 (Find Peak Element)
  10. 数电实验一-初识Multisim和Basys3
  11. 在js中对数值进行取整、四舍五入等方法汇总
  12. Leetcode2169. 得到 0 的操作数
  13. 毕业两年,洋洋洒洒千字文
  14. 元认知是认知的监督体系
  15. 华为OD机试真题2023(JavaScript)
  16. cpython gil_什么是GIL?为什么有了GIL还需要线程同步?为什么CPython设计了GIL?
  17. 自制锂电池主动均衡板与新能源技术,均衡技术及原理
  18. php5.6 php-fpm nginx安装和配置
  19. 51单片机c语言除法符号,单片机c语言教程:C51运算符和表达式
  20. 城市规划中的控规七线

热门文章

  1. 485 CAN 单总线 SPI I2C 的总结
  2. 浅析智能化指挥信息系统发展
  3. php怎么爬取亚马逊的数据,php 抓取亚马逊中国产品数据-标题,价格,首图片
  4. Android使用NFC模拟M卡实现 (二)
  5. OMA DRM 1.0 – OMA Download 框架
  6. git【--ours】及【--theirs】优雅的解决冲突
  7. 用C语言做一个计算两个数字相乘的程序。(第一个与用户交互的C语言程序!!!!)
  8. windows下使用nvm管理node版本
  9. Graphx社区发现算法学习
  10. 12.2 Kruskal算法