【Swift】学习笔记(四)——集合(Collection)
2014-10-27 16:58
232 查看
Swift和其他语言一样也提供了两种集合类型:数组和字典
数组:数组用来按顺序存储相同类型的数据,swift规定它是类型安全的,每一个数组都有自己的类型也就是其他语言所说的泛型。
创建数组:
1、var aa:[String] = ["aa","bb","cc"] 或者 var aa = ["aa","bb","cc"]
2、var aa = [String]() //空数组 aa.append("aa") //向aa数组增加一个成员,aa=[] //清空数组
3、var a = [Double](count:5,repeatedValue:0.0) //创建一个5个大小的数组,并且都赋值为0.0 ,由于swift类型推断的特性,还可以不用指定类型,var a = Array(count:5,repeatedValue:0.0)不过不推荐。
4、var a = [Double](count:5,repeatedValue:0.0); var
b = [Double](count:5,repeatedValue:5.5); var c = a + b; //将两个数组项合并到一个数组中去,类型会从相加的数组中推断出来。
数组的访问和修改:
数组的操作莫过于加项,修改项,删除项,遍历项等操作。
var aa = [String]()
判断数组是否为空,aa.isEmpty()
加到数组末尾:aa.append("test") 或者 aa += ["test1"] 或者 aa+=["test2","test3"]
插入到某一个位置:aa.insert("test2",atIndex:0)
获取某一项:下标 var tt = aa[0]
修改: aa[0] = "new test" 还可以批量改 aa[4...6] = ["a","b"]
删除项:var removeItem = aa.removeAtIndex(0) 被移除的项会返回出来。删除最后一个var removeItem = aa.removeLast()
遍历可以用for in循环。这个到for循环的时候再嘻嘻讨论。从上面append方法就可以看出数组是可变的。当然定义为let类型就不可变了。。。
字典-也就是键值对。无序存储 Dictionary<KeyType, ValueType> KeyType的唯一限制就是可哈希的,这样可以保证它是独一无二的,所有的 Swift 基本类型(例如String,Int,
Double和Bool)都是默认可哈希的
创建:1、通过字面量创建 var aa:Dictionary<String, String> = ["a":"aaa","b":"bbb"] 当然也可省略dictionary 写成 var aa = ["a":"aaa","b":"bbb"]
2、创建一个空字典 var aa = Dictionary<String, String> () 清空数据 aa = [:]
//比数组多了一个:号
读取:
1、字典大小 aa.count count属性
2、下标获取 var tmp = aa["a"]
修改:
1、下标修改 aa["a"] = "abc" //a这个key存在则修改,不存在则新增。很智能
2、方法修改 var oldValue = aa.updateValue("bbccdd",forKey:"b")
移除
1、用nil进行移除: aa["a"] = nil 就把key为a的移除了
2、方法移除: var oldValue = aa.removeForKey("a") a这个key和存在的数据被移除了
遍历也是用for in循环。在for循环中讨论.
新增集合(set)
创建、构造方法创建:var settmp = Set<Character>() 字面量创建:var settmp:Set<String> = ["a","b"]
长度、settmp.count 只读count属性
插入、settmp.insert("a")
删除、settmp.remove("a")
清空、settmp = [] 或者 sttmp.removeAll()
检索、setmp.contains("a")
用集合是它提供了一些集合间操作的方法:
使用
使用
使用
使用
使用“是否等”运算符(
使用
使用
使用
使用
swift不像oc那样仅仅在C语言的基础上外包一层面向对象,它真的非常灵活也和其他的编程语言语法非常相似。上手很容易的。
update 801:collection集合 是值类型,也就是意味着在发生赋值或者传入函数时,将发生值拷贝!
数组:数组用来按顺序存储相同类型的数据,swift规定它是类型安全的,每一个数组都有自己的类型也就是其他语言所说的泛型。
创建数组:
1、var aa:[String] = ["aa","bb","cc"] 或者 var aa = ["aa","bb","cc"]
2、var aa = [String]() //空数组 aa.append("aa") //向aa数组增加一个成员,aa=[] //清空数组
3、var a = [Double](count:5,repeatedValue:0.0) //创建一个5个大小的数组,并且都赋值为0.0 ,由于swift类型推断的特性,还可以不用指定类型,var a = Array(count:5,repeatedValue:0.0)不过不推荐。
4、var a = [Double](count:5,repeatedValue:0.0); var
b = [Double](count:5,repeatedValue:5.5); var c = a + b; //将两个数组项合并到一个数组中去,类型会从相加的数组中推断出来。
数组的访问和修改:
数组的操作莫过于加项,修改项,删除项,遍历项等操作。
var aa = [String]()
判断数组是否为空,aa.isEmpty()
加到数组末尾:aa.append("test") 或者 aa += ["test1"] 或者 aa+=["test2","test3"]
插入到某一个位置:aa.insert("test2",atIndex:0)
获取某一项:下标 var tt = aa[0]
修改: aa[0] = "new test" 还可以批量改 aa[4...6] = ["a","b"]
删除项:var removeItem = aa.removeAtIndex(0) 被移除的项会返回出来。删除最后一个var removeItem = aa.removeLast()
遍历可以用for in循环。这个到for循环的时候再嘻嘻讨论。从上面append方法就可以看出数组是可变的。当然定义为let类型就不可变了。。。
字典-也就是键值对。无序存储 Dictionary<KeyType, ValueType> KeyType的唯一限制就是可哈希的,这样可以保证它是独一无二的,所有的 Swift 基本类型(例如String,Int,
Double和Bool)都是默认可哈希的
创建:1、通过字面量创建 var aa:Dictionary<String, String> = ["a":"aaa","b":"bbb"] 当然也可省略dictionary 写成 var aa = ["a":"aaa","b":"bbb"]
2、创建一个空字典 var aa = Dictionary<String, String> () 清空数据 aa = [:]
//比数组多了一个:号
读取:
1、字典大小 aa.count count属性
2、下标获取 var tmp = aa["a"]
修改:
1、下标修改 aa["a"] = "abc" //a这个key存在则修改,不存在则新增。很智能
2、方法修改 var oldValue = aa.updateValue("bbccdd",forKey:"b")
移除
1、用nil进行移除: aa["a"] = nil 就把key为a的移除了
2、方法移除: var oldValue = aa.removeForKey("a") a这个key和存在的数据被移除了
遍历也是用for in循环。在for循环中讨论.
新增集合(set)
创建、构造方法创建:var settmp = Set<Character>() 字面量创建:var settmp:Set<String> = ["a","b"]
长度、settmp.count 只读count属性
插入、settmp.insert("a")
删除、settmp.remove("a")
清空、settmp = [] 或者 sttmp.removeAll()
检索、setmp.contains("a")
用集合是它提供了一些集合间操作的方法:
使用
union(_:)方法根据两个集合的值创建一个新的集合。
使用
subtract(_:)方法根据不在该集合中的值创建一个新的集合。
使用
intersect(_:)方法根据两个集合中都包含的值创建的一个新的集合。
使用
exclusiveOr(_:)方法根据值在一个集合中但不在两个集合中的值创建一个新的集合。
使用“是否等”运算符(
==)来判断两个集合是否包含相同的值。
使用
isSubsetOf(_:)方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用
isSupersetOf(_:)方法来判断一个集合中包含的值是另一个集合中所有的值。
使用
isStrictSubsetOf(_:)或者
isStrictSupersetOf(_:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且和特定集合不相等。
使用
isDisjointWith(_:)方法来判断两个结合是否不含有相同的值。
swift不像oc那样仅仅在C语言的基础上外包一层面向对象,它真的非常灵活也和其他的编程语言语法非常相似。上手很容易的。
update 801:collection集合 是值类型,也就是意味着在发生赋值或者传入函数时,将发生值拷贝!
相关文章推荐
- Swift学习笔记4——集合类型
- Swift 笔记四:collection集合
- java 集合学习笔记1-Collection 集合遍历 List子类特点
- Swift学习笔记第三篇(字符串,数组,集合,字典)
- Java学习笔记之集合(一):Collection集合的方法
- JavaSE中Collection集合框架学习笔记(1)——具有索引的List
- Swift 3.0 学习笔记-3-集合类型
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
- swift学习笔记(4)-集合类型
- 黑马程序员_集合学习Collection之List学习笔记
- 13. Java类集 Part 2(Map接口、SortedMap接口、集合工具类Collection、Stack类、属性类Properties) ----- 学习笔记
- Swift学习笔记 - 教程学习三 集合类型 (Collection Types)
- Swift学习笔记(二)字符串和集合类型操作
- Java集合框架之Collection学习和笔记——黑马训练营
- JAVA学习笔记——集合Collection
- 黑马程序员_集合学习Collection之Set学习笔记
- Swift中内置的集合类型学习笔记
- Java学习笔记 --- Collection集合框架
- 【JavaSE学习笔记】集合01_Collection,List
- collection集合学习笔记