8、哈希表(Hash)
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)相关推荐
- 纸上谈兵: 哈希表 (hash table)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! HASH 哈希表(hash table)是从一个集合A到另一个集合B的映射(map ...
- “chaos”的算法---之哈希表(HASH)算法详解
[ 声明:版权所有,欢迎转载. 联系信箱:yiluohuanghun@gmail.com] 在数据查找中我们会想到很多不错的.行之有效的方法,大体分为以下几种,1.对于空间连续的数据采用二分查找法等 ...
- PHP关联数组和哈希表(hash table) 未指定
PHP有数据的一个非常重要的一类,就是关联数组.又称为哈希表(hash table),是一种很好用的数据结构. 在程序中.我们可能会遇到须要消重的问题,举一个最简单的模型: 有一份username列表 ...
- 【散列表(哈希表) Hash Table(上)】:Word文档中的单词拼写检查功能是如何实现的?
Word 这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在 Word 里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word 的这个 ...
- 学习数据结构笔记(8) ---[哈希表(Hash table)]
B站学习传送门–>尚硅谷Java数据结构与java算法(Java数据结构与算法) 一般在java程序访问数据库时都会安排从内存的缓存层中取数据;之前的做法是自己写个哈希表,实现对数据的缓存. 哈 ...
- 哈希表Hash与JAVA集合类Map及其方法put()、getOrDefault()、keySet()、get()
一.Map与HashMap() Map<Integer, Integer> map = new HashMap<>(); 二.Map.put() Map.put() 方法的作用 ...
- Hash+哈希表+HashMap+HashSet
Hash+哈希表+HashMap+HashSet 哈希算法,是一类「算法」. 哈希表(Hash Table),是一种「数据结构」. 哈希函数,是支撑哈希表的一类「函数」. Map是映射/地图的意思,在 ...
- 哈希表(Hash Table)及散列法(Hashing)
bigshuai 哈希 源地址 http://www.cnblogs.com/bigshuai/articles/2398116.html 哈希表(Hash Table)及散列法(Hashing) 数 ...
- 哈希表(Hash Table)原理及其实现
原理 介绍 哈希函数构造 冲突处理 举例 拉链法 hash索引跟B树索引的区别 实现 原理 介绍 哈希表(Hash table,也叫散列表), 是根据关键码值(Key value)而直接进行访问的数据 ...
- 【Python算法】哈希存储、哈希表、散列表原理
哈希表的定义: 哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中 ...
最新文章
- PaddleFluid和TensorFlow基本使用概念对比 | PaddlePaddle专栏
- pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷
- Uber无人车为何危险:长期忽视模拟器,只在意路测 | 内部声音
- 暑假学习打卡【3】——北理工乐学第三周作业
- Python实战:个人贷款计算器
- SecureCRT SecureFx 绿色破解版
- 2021抖音上热门技巧有哪些?
- 如何在WorkNC中快速建立坐标管理器
- 算法系列——寻找峰值 (Find Peak Element)
- 数电实验一-初识Multisim和Basys3
- 在js中对数值进行取整、四舍五入等方法汇总
- Leetcode2169. 得到 0 的操作数
- 毕业两年,洋洋洒洒千字文
- 元认知是认知的监督体系
- 华为OD机试真题2023(JavaScript)
- cpython gil_什么是GIL?为什么有了GIL还需要线程同步?为什么CPython设计了GIL?
- 自制锂电池主动均衡板与新能源技术,均衡技术及原理
- php5.6 php-fpm nginx安装和配置
- 51单片机c语言除法符号,单片机c语言教程:C51运算符和表达式
- 城市规划中的控规七线