12.映射表map.rs
/* 映射表*/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相关推荐
- 数据结构之映射表(Map)---第一篇---用链表实现
一.映射表(Map)简介 映射表是一种依照键/值对存储元素的容器,又称字典(directory),散列表(hash table). 映射表将键和值一起保存,键类似于数组中的下标,不能有重复的键,每个键 ...
- 映射表map(平衡二叉树实现)_手动实现Java集合容器之TreeMap(上)
上一篇我们手写了HashMap,还有一个很重要的Map的实现类TreeMap.打开源码第一句话:* A Red-Black tree based {@link NavigableMap} implem ...
- 【c++】映射表std::map
文章内容为网络搜集内容 std::map 映射表(Map)容器是一个按特定顺序存储以键值对组合而成的元素的关联容器 // <map> template < class Key,cla ...
- ***Redis hash是一个string类型的field和value的映射表.它的添加、删除操作都是O(1)(平均)。hash特别适合用于存储对象...
http://redis.readthedocs.org/en/latest/hash/hset.html HSET HSET key field value (存一个对象的时候key存) 将哈希 ...
- java集合——映射表+专用集合映射表类
[0]README 0.1) 本文描述转自 core java volume 1, 源代码为原创,旨在理解 java集合--映射表+专用集合映射表类 的相关知识: 0.2) for full sour ...
- 【openGauss】Oracle到postgresql的字符集名称映射表
前言 最近在写支持openGauss的dbms_lob包,其中的converttoblob及converttoclob两个过程涉及到了字符集相关内容(有个参数是nls_charset_id),但ope ...
- android 按键映射文件,《android 的按键映射表》.doc
<android 的按键映射表>.doc Keymaps and Keyboard Input This document describes how keyboard input get ...
- c语言 字符映射表,字符集编码与 C/C++ 源文件字符编译乱弹(收集转载)
最近在看国际化编程 (i18n:internationalization) 的东西,也弄清楚了点字符集有关的一些问题,其实网上的一些牛人已经将字符集.Unicode 等相关的问题说的很清楚了,我在这里 ...
- ML之FE:对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表daiding
ML之FE:对pandas的dataframe中的类别型字段进行数字编码化(类别型特征数值化)并导出映射表daiding 目录 对pandas的dataframe中的类别型字段进行数字编码化(类别型特 ...
最新文章
- c语言和c++字符串操作对比
- 关于VC中的stdafx.h
- JZOJ 5268. 旅行
- centos7安装Hive2.3.0
- mysql ddl分类_MySQL语言分类——DDL
- iOS 学习 - 18.TextField 自定义菜单事件,复制和微信分享
- 精通linux开关机表情包,关机表情包 - 关机微信表情包 - 关机QQ表情包 - 发表情 fabiaoqing.com...
- 关于如何保持图片分辨率并压缩图片存储大小
- 国外硕博论文下载网址
- python爬虫读后感-学习爬虫的感想和心得
- zk选举机制和分布式一致性原理
- 计算机基础长文档的排版,长文档的排版(说课)重要.ppt
- 机器学习是什么?详解机器学习概念
- 历史上的今天——4月1日
- 利用自识别标记实现复杂场景下相机标定
- 注册石墨文档无法连接服务器,石墨文档没有访问权限是怎么回事?权限解决方法看这里!...
- 2020 人工智能金炼奖,容联荣登最强AI企业榜单
- 监控FTP服务状态,并自动重启servU
- Python 图片批量处理(图片批量rename,图片批量resize,图片批量split,图片批量concat)
- froyo 新的多媒体框架 stagefright与opencore对比