swift_Dictionary 字典
//
// main.Swift
// 字典
//
// Created by zhangbiao on 14-6-15.
// Copyright (c) 2014年 理想. All rights reserved.
//
import Foundation
println("字典")
/*
字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。我们在需要通过标识符(键)访问数据的时候使用字典
*/
//(1)创建一个字典
var dic:Dictionary<String,String>=["三国演义":"罗贯中","水浒传":"施耐庵","红楼梦":"曹雪芹","西游记":"吴承恩"];
println(dic);
//执行结果:[三国演义: 罗贯中, 水浒传: 施耐庵, 红楼梦: 曹雪芹, 西游记: 吴承恩]
//(2)访问字典
var name=dic["三国演义"];
println(name);
//执行结果:罗贯中
//(3)向字典中添加键值
var student:Dictionary<String,Int> = ["小明":10001,"小华":10002,"小红":10003]; // 声明一个学生字典 键: 姓名 值:学号
//添加
student["理想"]=10004;
println(student);
//执行结果:[小华: 10002, 小红: 10003, 小明: 10001, 理想: 10004]
//修改
student.updateValue(12345,forKey:"理想");
// 将理想的学号改为12345 updateValue() 这个方法返回更新值之前的原值。这样方便我们检查更新是否成功
println(student);
//执行结果:[小华: 10002, 小红: 10003, 小明: 10001, 理想: 12345]
//删除
student.removeValueForKey("理想"); //将理想 删除
println(student);
//执行结果:[小华: 10002, 小红: 10003, 小明: 10001]
//获得键对应的值
let value = student["小明"]; //获取键为"小明"对应的value
println("小明 的 value 为 \(value)");
//执行结果: 小明 的 value 为 10001
//(4)遍历 for in 字典 会以元组(键,值)的形式返回
for (key,value) in student //无序
{
println("键:\(key) 值:\(value)");
}
//执行结果:
/*
键:小华 值:10002
键:小红 值:10003
键:小明 值:10001
*/
//或者
for tuples in student //无序
{
println("键:\(tuples.0) 值:\(tuples.1)");
}
//我们也可以通过访问他的keys或者values属性(都是可遍历集合)检索一个字典的键或者值
for key in student.keys
{
println("key=:\(key)");
}
//执行结果:
/*
key=:小华
key=:小红
key=:小明
*/
for value in student.values
{
println("value=:\(value)");
}
//执行结果:
/*
key=:10002
key=:10003
key=:10001
*/
//(5)通过构造方法创建字典
var namesOfIntegers = Dictionary<Int, String>()
//(6)字典类型的赋值和拷贝行为
/*
注意:字典和数组的拷贝是不同的
1.无论何时将一个字典实例赋给一个常量或变量,或者传递给一个函数或方法,这个字典会即会在赋值或调用发生时被拷贝。
2.如果字典实例中所储存的键(keys)和/或值(values)是值类型(结构体或枚举),当赋值或调用发生时,它们都会被拷贝。相反,如果键(keys)和/或值(values)是引用类型,被拷贝的将会是引用,而不是被它们引用的类实例或函数
*/
var student2=student; // 字典赋值
println(" student 为:\(student)\n student2 为:\(student2) ");
/*
执行结果:
student 为:[小华: 10002, 小红: 10003, 小明: 10001]
student2 为:[小华: 10002, 小红: 10003, 小明: 10001]
*/
student.updateValue(12345,forKey:"小明"); // 改变 student 中 小明的 value student2不会改变
println(" student 为:\(student)\n student2 为:\(student2) ");
/*
执行结果:
student 为: [小华: 10002, 小红: 10003, 小明: 12345]
student2 为:[小华: 10002, 小红: 10003, 小明: 10001]
*/
swift_Dictionary 字典的更多相关文章
- 【DG】Oracle_Data_Guard官方直译
[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ...
- DVWA实验之Brute Force(暴力破解)- Low
DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...
- Oracle错误览表
Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ...
- Javacript实现字典结构
字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- 增强版字典DictionaryEx
代码 public class DictionaryEx<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python之最强王者(8)——字典(dictionary)
1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
随机推荐
- Configure Visual Studio 2013 for debugging .NET framework
https://referencesource.microsoft.com/ In order to configure Visual Studio 2013 do the following in ...
- 深度系统deepin使用初体验
最近使用linux系统比较多,因为很多项目要用到,而且厌烦了windows流氓软件各种广告的繁琐,因此决定在自己的本子上安装linux系统.然后了解到了deepin操作系统,竟然是武汉一个公司发行的版 ...
- [转]html5音乐播放器
http://files.cnblogs.com/files/xjyggd/html5music.rar import java.io.File;import java.util.ArrayList; ...
- 《编写可维护的JavaScript》——JavaScript编码规范(四)
注释 单行注释 单行注释以两个斜线开始,以行尾结束 单行注释有三种使用方法: 独占一行的注释,用来解释下一行代码.这行注释前总是有一个空行,且缩进层级和下一行代码保持一致. 在行尾的注释.代码结束到注 ...
- 折半查找(java)(边学习边更新)
---恢复内容开始--- class ArrayTest3 { public static void main(String[] args) { //int [] arr=new int[]{54,4 ...
- 微信小程序实例
看到小程序,那么火,自己也想动手写一个.但是没有很好的api接口.有一天看到一个开发安卓的朋友,写了一个干货集中营的小程序.就搜了一下.看到api是免费开放的.于是自己也动手写了一个. 具体的微信小程 ...
- js 练习
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="req_form.aspx.cs ...
- 续并查集学习笔记——Gang团伙题解
一言不合先贴题目 Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙 ...
- 最小化安装的CentOS7挂载ntfs格式的U盘
准备从系统中拷贝一些文件到U盘,插上U盘. 一.获得U盘的设备识别符 fdisk -l 啊哈,我看到了,是/dev/sdb1 二.熟练的挂载 mount /dev/sdb1 /mnt/usb Duan ...
- 企业办公3D指纹考勤系统解决方案
员工准时.正常出勤是企业考勤制度的基本要求,然而目前签名式.卡钟式.IC卡考勤系统均存在代打卡.人情卡.不易统计等漏洞,而市面上的光学指纹考勤机存在识别能力差.识别速度慢.使用寿命短.不能完全杜绝指纹 ...