对照Java学习Swift--集合类型
来源:互联网 发布:nero软件是否收费 编辑:程序博客网 时间:2024/05/22 03:49
数组
Java里面的数组,创建了以后的大小是不能改变的,只能往里面去存储数据,有两个方式创建数组:
String[] array = new String[10];
String[] array1 = {“aa”,”bb”,”cc”};
我们创建了两个String数组,一个大小为10,每个元素为null的数组,一个3个元素的数组。
Swift的数组则灵活的多,我们先来看创建数组:
var someStrings = String//创建一个空数组
var strings = [String](count: 3, repeatedValue:”“)//创建三个元素,每个元素为”“的数组
var shoppingList = [“Eggs”, “Milk”]//创建两个元素的数组
swift中数组是非常灵活的,数组可以相加,插入新元素,删除元素,Java则不可以,我们看下例子:
var shoppingList = [“Eggs”, “Milk”]
shoppingList += [“Baking Powder”]
shoppingList += [“Chocolate Spread”, “Cheese”, “Butter”]
shoppingList[4…5] = [“Bananas”, “Apples”]
shoppingList.insert(“Maple Syrup”, atIndex: 0)
let mapleSyrup = shoppingList.removeAtIndex(0)
let apples = shoppingList.removeLast()
最后我们看下数组的遍历,分两种方式:
for item in shoppingList {
print(item)
}
for (index, value) in shoppingList.enumerate() {
print(“Item (String(index + 1)): (value)”)
}
一种可以获取元素,另一个还可以获得索引和元素
集合(Sets)
Java和Swift中的Set都是存储相同类型并且没有确定顺序的值,Java中Set是通过接口暴露出来,实现类包括HashSet,TreeSet等。Swift中对Set的操作跟Java差不多,就创建有些不同:
var letters = Set();
var favoriteGenres: Set = [“Rock”, “Classical”, “Hip hop”]
创建以后对Set的操作,无非就是方法的调用,大家可以去试试,应该很简单的。
但是有一点,是Swift有而Java没有的,就是Swift可以对集合进行基本操作,比如把两个集合组合到一起,判断两个集合共有元素,或者判断两个集合是否全包含,部分包含或者不相交。
使用intersect(_:)方法根据两个集合中都包含的值创建的一个新的集合。
使用exclusiveOr(_:)方法根据在一个集合中但不在两个集合中的值创建一个新的集合。
使用union(_:)方法根据两个集合的值创建一个新的集合。
使用subtract(_:)方法根据不在该集合中的值创建一个新的集合。
我们看下例子:
let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]
let singleDigitPrimeNumbers: Set = [2, 3, 5, 7]
oddDigits.union(evenDigits).sort() // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
oddDigits.intersect(evenDigits).sort() // []
oddDigits.subtract(singleDigitPrimeNumbers).sort() // [1, 9]
oddDigits.exclusiveOr(singleDigitPrimeNumbers).sort() // [1, 2, 9]
应该比较简单,大家可以尝试下。
还有一点就是swift有集合成员关系和相等:
使用“是否相等”运算符(==)来判断两个集合是否包含全部相同的值。
使用isSubsetOf(_:)方法来判断一个集合中的值是否也被包含在另外一个集合中。
使用isSupersetOf(_:)方法来判断一个集合中包含另一个集合中所有的值。
使用isStrictSubsetOf(:)或者isStrictSupersetOf(:)方法来判断一个集合是否是另外一个集合的子集合或者父集合并且两个集合并不相等。
使用isDisjointWith(_:)方法来判断两个集合是否不含有相同的值(是否没有交集)。
我们看下例子:
let houseAnimals: Set = [“a”, “b”]
let farmAnimals: Set = [“c”, “d”, “e”, “a”, “b”]
let cityAnimals: Set = [“f”, “g”]
houseAnimals.isSubsetOf(farmAnimals)
// true
farmAnimals.isSupersetOf(houseAnimals)
// true
farmAnimals.isDisjointWith(cityAnimals)
// true
可以看到,Swift的集合还是要比Java的集合强大许多。
字典
字典是一种存储多个相同类型的值的容器
Java中也有Dictionary这个类,不过以我的经验来看,用的很少,大部分用的是HashMap如果是线程安全的话就用Hashtable。
Swift中Dictionary的创建与使用跟Set差不多,只是语法不同:
var namesOfIntegers = Int: String
var airports = [“YYZ”: “Toronto Pearson”, “DUB”: “Dublin”]
其他方面包括增加,删除,修改,遍历到时没什么,就是对各种方法的使用而已,大家可以自行联系,很简单的。
http://www.voidcn.com/blog/lovexieyuan520/article/p-5693175.html
- 对照Java学习Swift--集合类型
- 对照Java学习Swift--集合类型
- 对照Java学习Swift--类型转换(Type Casting)
- 对照Java学习Swift--嵌套类型(Nested Types)
- Swift学习 --- 2.4集合类型
- Swift学习:2.4 集合类型
- 对照Java学习Swift--基础部分
- 对照Java学习Swift--基本运算符
- 对照Java学习Swift--字符串和字符
- 对照Java学习Swift--函数(Functions)
- 对照Java学习Swift--枚举(Enumerations)
- 对照Java学习Swift--属性 (Properties)
- 对照Java学习Swift--方法(Methods)
- 对照Java学习Swift--下标(Subscripts)
- 对照Java学习Swift--继承(Inheritance)
- 对照Java学习Swift--扩展(Extensions)
- 对照Java学习Swift--协议(Protocols)
- 对照Java学习Swift--泛型(Generics)
- TreeSet集合
- 3D图形
- 函数指针
- Android 内部类广播错误.MainActivity$MyReceiver; no empty constructor
- legnano卡片 里怎么添加成员,设置标签,添加检查项?
- 对照Java学习Swift--集合类型
- bzoj 3223: Tyvj 1729 文艺平衡树(splay 模板题 区间翻转)
- C语言fopen()函数:打开一个文件并返回文件指针
- Git之版本回退
- SSH应用总结–查询
- IE8兼容border-radius
- css-margin collapse外边距折叠
- 中国剩余定理(CRT 孙子定理)——Biorhythms(POJ 1006)
- window下单机最大tcp连接数