【swift总结】集合

swift提供三个集合类型

  1. Array(数组)有顺序可以重复 []
  2. Set(集合)没顺序不可以重复 {}
  3. Dictionary(字典)键值对{}

Array(数组)

创建数组

/**创建一个空的Int类型的数组*/
var someInts = [Int]();

/*往数组添加一个元素3*/
someInts.append(3);

/*把这个数组置为空*/
someInts = [];

/*创建一个Double类型的数组,含有3个值,每个值都是0.0*/
var treeDoubles = [Double](count: 3, repeatedValue: 0.0);

/**/
var otherDoubles = [Double](count: 4, repeatedValue: 1.6);

/*使用两个相同类型的数组相加创建一个新的数组*/
var doubleArray = treeDoubles + otherDoubles;

/*直接创建一个数组*/
var strArray = ["爱我","不爱我", "爱我", "不爱我"];

访问和修改数组

strArray.count; /**返回数组的长度 4*/

strArray.isEmpty;   //判断数组是不是空 false

strArray.append("去死吧"); //往数组中添加一个元素 

strArray += ["当然不爱你了"]; //加上一个数组 

strArray += ["老公", "老婆"]; 

strArray[0];    //访问数组第一个元素 

strArray[0] = "逗逼"; //修改第1个元素的值

strArray[5...7] = ["无聊"];   //把5-7这个范围中的元素修改位"无聊" 

strArray.insert("小孩", atIndex: 3);      //在第四个位置插入字符串

strArray.removeAtIndex(3);  //移除第四个位置的元素 

strArray.removeLast();  //移除最后一个元素

遍历数组

for str in strArray {
    print(str);
}

使用enumerate()函数

for (index, value) in strArray.enumerate() {
    print("\(index + 1) 个元素是 \(value)");
}

Set(集合)

Set类型里面的值是不能相等的,swift会判断两个值得hashcode值是否相等来判断这两个值是不是相等的

创建Set

ar strSet = Set<String>();  //创建一个空的Set
strSet.insert("one");   //往Set中插入一个值
strSet = [];    //把set置空

var numSet: Set<String> = ["one", "two", "three","four"];   //直接声明

注意:Set类型不能被推断,所以创建Set的时候一定要给出是Set类型

var numSet = ["one", "two", "three","four"];//这样会被推断位数组
var numSet:Set = ["one", "two", "three","four"];//这样才是Set,String类型会自动推断

访问修改Set

numSet.count;   //返回元素的个数
numSet.isEmpty; //判断numSet是不是空
numSet.insert("five");  //往numSet中插入元素

numSet.remove("two");/*移除set中的元素,如存在返回这个元素,否则返回nil*/

numSet.contains("one");//判断set是否包含这个元素

遍历set

for num in numSet {
    print(num);
}

//返回排序好的set元素
for num in numSet.sort() {
    print(num);
}

求交集,并集,补集等

let set1: Set = [1, 2, 3, 4];
let set2: Set = [3, 4, 5, 6];

sort()函数会把set转为数组
set1.union(set2).sort();//并集[1, 2, 3, 4, 5, 6]

set1.intersect(set2);//交集{3, 4}

set1.subtract(set2);//不在set2中的元素{2, 1}

set1.exclusiveOr(set2);//不在并集里面的{5, 6, 2, 1}

包含关系

let setA: Set = [1, 2, 3, 4];
let setB: Set = [3, 4, 5, 6];
let setC: Set = [1, 2];

setC.isSubsetOf(setA);  //setC是不是包含与setA true
setA.isSupersetOf(setC);    //setA是不是包含setC true

setA.isDisjointWith(setB);  //setA是不是不和setB相交 false
setC.isDisjointWith(setB);  //setC是不是不和setB相交 false

Dictionary(字典)

创建字典

/*创建一个空的字典*/
var nameOfInteger = [Int:String]();

/*添加一个元素*/
nameOfInteger[1] = "one";

/*把字典置空*/
nameOfInteger = [:];

//直接创建一个字典
var strDict = ["one":"高富帅", "two":"土豪", "three":"帅哥", "four":"屌丝"];

访问和修改字典

/*返回元素个数*/
strDict.count;

/*判断字典是不是空*/
strDict.isEmpty;

/*访问字典键位four的元素*/
strDict["four"];

/*修改这个元素,如果没有就是添加*/
strDict["four"] = "土鳖";

/*更新元素,没有就添加然后返回nil*/
let oldValue = strDict.updateValue("丑比", forKey: "four");

/*访问元素,没有就是nil*/
let str = strDict["three"];

/*删除这个元素*/
strDict["four"] = nil;

字典的遍历

for (key, value) in strDict {
    print(value);
}

/**遍历key*/
for key in strDict.keys {
    print(strDict[key]);
}

//将key或value转为数组
let keyArray = [String](strDict.keys);
时间: 2024-11-10 13:17:51

【swift总结】集合的相关文章

swift字典集合-备

Swift字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. 字典声明与初始化 Swift字典类型是Dictionary,也是一个泛型集合. 在声明一个Dictionary类型的时候可以使用下面的语句之一. [html] view plain copy print? var studentDictionary1: Dictionary<Int, S

Swift字典集合

字典表示一种非常复杂的集合,允许按照某个键来访问元素.字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合.键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的. 如下图所示是字典结构的"学号与学生"集合,学号是键集合,不能重复,学生是值集合,可以重复. 提示 字典中键和值的集合是无序的,即便在添加的时候是按照顺序添加的,当取出这些键或值的时候,也会变得无序.字典集合更适合通过键快速访问值,就像查英文字典一样,键就是要查的英文单词,而值是英文单词的

Swift,集合

1.创建集合(无序不可重复) (1)创建空集合 var a=Set<Int>() //[] (2)创建集合 var a:Set=[1,2,3] //[2,3,1] 2.集合插入(insert)中间 var a:Set=[1,2,3] a.insert(4) //[2,4,3,1] 3.集合(remove)删除 var a:Set=[1,2,3] a.remove(2) //[3,1] 4.集合(contains)是否有这个元素 var a:Set=[1,2,3] print(a.contain

Swift 里集合类型协议的关系

? ? Sequence A type that provides sequential, iterated access to its elements. 是最基础的协议,可以通过迭代来获取它的元素. 有两个关联类型: /// A type representing the sequence's elements. associatedtype Element /// A type that provides the sequence's iteration interface and ///

Swift中的集合类型

一.引子: 在2014年10月TIOBE编程语言排行榜中,Swift位居第18位,从2014WWDC发布会首次公布至今不到半年时间,swift一直受到编程人员的追捧,其热衷程度并不亚于当红巨星Taylor Swift.相信在不远的将来,swift能够平稳发展,并逐步取代Objective-C. 二.swift的集合类型 下面回归主题.作为一名iOS开发者,我们已经非常熟悉诸如NSArray,NSDictionary,NSSet等常见集合类型,以及它们的可变同类NSMutableArray,NSM

Welcome to Swift (苹果官方Swift文档初译与注解二十一)---140~147页(第三章--集合类型)

第三章 Collection Types (集合类型) 在Swift中,提供了两种集合类型用来存储一组值:数组和字典.数组有序的存储相同类型的值;字典存储无序的相同类型的值.字典可以通过唯一的标识(就是所说的键)来查询和访问. 在Swift中,数组和字典总是要清晰的标明他们存储数据的类型.这就意味着不可以将错误的类型插入到数组或字典中.同时也意味着你是明确了解你要遍历的数组或字典里面数据的类 型.在Swift中,集合要显式的声明类型来保证在开发中都会明确的知道它能处理的数据类型. 注意点: 在S

swift 初见-5集合类型

// Playground - noun: a place where people can play import UIKit var str = "Hello, playground" // swift的集合类型只有数组和字典 // 数组中只能存储相同类型的数据(可以是基本类型,也可以是类对象) // 申明方法 [String] Array<String> // 一旦隐是声明后,他的类型就确定了,不能在存储其他类型的数据了 var array=["a"

swift 集合类型(二)

说到swift的集合类型,就不得不谈到Dictionary.包含一个键值对组合的集合. var air = ["name":"warner","title":"Math"] var air = Dictionary<String,String>(minimumCapacity:3) 都可以初始化Dictionary.在swift中,Dictionary其实是一个结构:struct,继承自Collection.而Co

swift资源库—3—字典/集合/数组

持续更新中~~ 转载注明 http://blog.csdn.net/jiang314 前言 Swift语言提供Array.Set和Dictionary三种基本的集合类型用来存储集合数据.数组是有序的数据集:集合是无序无重复的数据集:而字典是无序的键值对数组集. Swift的Array.Set和Dictionary类型被实现为泛型集合.因此,它所存储的元素的类型必须是一致的,同样,我们取出来的数据类型也是明确的. 集合的可变性 如果创建一个Arrays.Sets或Dictionaries并且把它分

[译] Swift 的响应式编程

原文  https://github.com/bboyfeiyu/iOS-tech-frontier/blob/master/issue-3/Swift的响应式编程.md 原文链接 : Reactive Swift 原文作者 : Agnes Vasarhelyi 译文出自 : 开发技术前线 www.devtf.cn 译者 :Mr.Simple 校对者:Lollypo 状态 : 完成 让我们首先回到Apple刚推出Objective-C的继任者-Swift的时候,那真是一个非比寻常的时刻. Sir