/* 映射表*/use std::collections::HashMap;fn test_1() {println!("-------------------------test_1-------------------------");let mut map = HashMap::new(); //这里没有声明散列表的泛型,是因为 Rust 的自动判断类型机制。map.insert("color", "red");map.insert("size", "10 m^2");println!("{}", map.get("color").unwrap());//这种用法必须保证key必须存在,否则直接panicprintln!("{}", map["color"]);//支持迭代器for i in &map {println!("{}->{}", i.0, i.1);}for i in map.iter() {println!("{:?}", i);println!("{:?}------>>>>>>>{:?}", i.0,i.1);}//移除map.remove("size");//支持迭代器for i in &map {println!("{}->{}", i.0, i.1);}
}//当使用 insert 方法添加新的键值对的时候,如果已经存在相同的键,会直接覆盖对应的值
//如果你想"安全地插入",就是在确认当前不存在某个键时才执行的插入动作,
fn test_2() {println!("-------------------------test_2-------------------------");let mut map = HashMap::new();map.insert("color", "red");map.insert("size", "10 m^2");map.entry("color").or_insert("red"); //这句话的意思是如果没有键为 "color" 的键值对就添加它并设定值为 "red",否则将跳过。
}//在已经确定有某个键的情况下如果想直接修改对应的值,有更快的办法:
fn test_3() {println!("-------------------------test_3-------------------------");let mut map = HashMap::new();map.insert("color", "red");if let Some(x) = map.get_mut(&"color2") {*x = "green";}if HashMap::contains_key(&map, "color2"){println!("contain key color");} else {println!("not contain key color2");}//这种直接赋值的方式则不可以//map["color"]="yello";for i in map.iter() {println!("{:?}", i);}
}fn main() {test_1();test_2();test_3();
}

12.映射表map.rs相关推荐

  1. 数据结构之映射表(Map)---第一篇---用链表实现

    一.映射表(Map)简介 映射表是一种依照键/值对存储元素的容器,又称字典(directory),散列表(hash table). 映射表将键和值一起保存,键类似于数组中的下标,不能有重复的键,每个键 ...

  2. 映射表map(平衡二叉树实现)_手动实现Java集合容器之TreeMap(上)

    上一篇我们手写了HashMap,还有一个很重要的Map的实现类TreeMap.打开源码第一句话:* A Red-Black tree based {@link NavigableMap} implem ...

  3. 【c++】映射表std::map

    文章内容为网络搜集内容 std::map 映射表(Map)容器是一个按特定顺序存储以键值对组合而成的元素的关联容器 // <map> template < class Key,cla ...

  4. ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...

    http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value   (存一个对象的时候key存) 将哈希 ...

  5. java集合——映射表+专用集合映射表类

    [0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--映射表+专用集合映射表类 的相关知识: 0.2) for full sour ...

  6. 【openGauss】Oracle到postgresql的字符集名称映射表

    前言 最近在写支持openGauss的dbms_lob包,其中的converttoblob及converttoclob两个过程涉及到了字符集相关内容(有个参数是nls_charset_id),但ope ...

  7. android 按键映射文件,《android 的按键映射表》.doc

    <android 的按键映射表>.doc Keymaps and Keyboard Input This document describes how keyboard input get ...

  8. c语言 字符映射表,字符集编码与 C/C++ 源文件字符编译乱弹(收集转载)

    最近在看国际化编程 (i18n:internationalization) 的东西,也弄清楚了点字符集有关的一些问题,其实网上的一些牛人已经将字符集.Unicode 等相关的问题说的很清楚了,我在这里 ...

  9. ML之FE:对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表daiding

    ML之FE:对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表daiding 目录 对pandas的dataframe中的类别型字段进行数字编码化(类别型特 ...

最新文章

  1. c语言和c++字符串操作对比
  2. 关于VC中的stdafx.h
  3. JZOJ 5268. 旅行
  4. centos7安装Hive2.3.0
  5. mysql ddl分类_MySQL语言分类——DDL
  6. iOS 学习 - 18.TextField 自定义菜单事件,复制和微信分享
  7. 精通linux开关机表情包,关机表情包 - 关机微信表情包 - 关机QQ表情包 - 发表情 fabiaoqing.com...
  8. 关于如何保持图片分辨率并压缩图片存储大小
  9. 国外硕博论文下载网址
  10. python爬虫读后感-学习爬虫的感想和心得
  11. zk选举机制和分布式一致性原理
  12. 计算机基础长文档的排版,长文档的排版(说课)重要.ppt
  13. 机器学习是什么?详解机器学习概念
  14. 历史上的今天——4月1日
  15. 利用自识别标记实现复杂场景下相机标定
  16. 注册石墨文档无法连接服务器,石墨文档没有访问权限是怎么回事?权限解决方法看这里!...
  17. 2020 人工智能金炼奖,容联荣登最强AI企业榜单
  18. 监控FTP服务状态,并自动重启servU
  19. Python 图片批量处理(图片批量rename,图片批量resize,图片批量split,图片批量concat)
  20. froyo 新的多媒体框架 stagefright与opencore对比

热门文章

  1. 自己写一个实现ApplicationListener​接口并且把该组件加入到容器中
  2. MapReduce分区-原理
  3. DataURL:概述
  4. ES6新特性之Generator函数
  5. 同步代码块解决线程安全
  6. Innodb存储引擎的特性(1).
  7. 设计模式:装饰模式(Decorator)
  8. sed知识整理:模式空间
  9. mysql设置字段为空字符串_mysql数据类型字段插入空字符串自动填充为0报错
  10. 路径中斜杠/、点斜杠./、点点斜杠../的区别