从0开始入门学习Swift 11 集合类型之Array数组

1.数组(Array)描述

文档描述:

数组使用有序列表存储同一类型的多个值。相同的值可以多次出现在一个数组的不同位置中。
Swift 中数组的完整写法为 Array< Element >,其中 Element 是这个数组中唯一允许存在的数据类型。也可以使用像 [Element] 这样的简单语法。


2.基础语法及使用

2.1.1 通过类型推断
  	var a = [1,2,3,4]
    print(type(of: a))
    print(a)
	/*输出结果为:
	Array<Int>
	[1, 2, 3, 4]
	*/

通过以上代码我们可以得知:a是一个Int类型的array数组,这里的Int类型是通过类型推断所推断出来的

2.1.2 明确指定类型

有的条件下会需要直接定义好数据类型,例如我们定义一个String类型的数组:

	var b:[String] = ["hello","world"]
    print(type(of: b))
    print(b)
    /*输出结果:
	Array<String>
	["hello", "world"]
	*/

需要注意的是,这里在指定了类型之后,后边的类型需要与定义的数据类型相匹配,swift并不会帮你自动转化为String类型

2.1.3 通过数组类型进行定义

跟前者其实差不多,也可以指定类型

	var c:Array<Double> = [1.5,2.5,3.2]
	print(type(of:c))
	print(c)
	/*输出结果
	Array<Double>
	[1.5, 2.5, 3.2]
	*/

同样,你也可以定义一个空的数组:

	var array:Array<Int> = []
	print(type(of:array))
	print(array)
	/*输出结果
	Array<Int>
	[]
	*/
2.1.4 取值、修改值

以2.1.3为例,根据索引取值与修改值:

print(c[0],c[1],c[2])
// 输出结果 1.5 2.5 3.2

c[0] = 99.9
print(c[0])
//输出结果 99.9
2.1.5 通过初始化构造器定义

有的时候我们需要一个可变长度的且可以为空的数组

	var array02 = [Int]()
	print(type(of:array02))
	print(array02)
	/*输出结果
	Array<Int>
	[]
	*/

什么叫可变长度,简单的来说就是我们可以往里边添加数据

	//使用append在末尾添加数据
	array02.append(1)
	array02.append(2)
	array02.append(99)
	print(array02)
	//输出结果 [1, 2, 99]

通过Array初始化器,生成一个,初始值为“待添加”,长度为3的数组:

	var arr2 = Array(repeating: "待添加", count: 3)
    print(arr2)
    //输出结果 ["待添加", "待添加", "待添加"]

小结:如果是let类型的话,不可以改变数组的长度和数据,但是可以取值

2.1.6 在后边拼接一个数组

这里可以直接使用+号

 	var arradd = ["Java","Python","C"]
    print(arradd)
    arradd += ["C#",".Net"]
    print(arradd)
    /* 输出结果
	["Java", "Python", "C"]
	["Java", "Python", "C", "C#", ".Net"]
	*/
2.1.7 在指定位置添加一个数组

参照的上一个 2.1.6

	arradd.insert("Swift", at: 2)
    print(arradd)
    // 输出结果
    //["Java", "Python", "Swift", "C", "C#", ".Net"]

3.扩展用法

3.1 判断是否存在于数组中

定义的内容参照2.1.6,存在即为True,不存在即为False

	 print(arradd.contains("Swift"))
	 //输出结果true
3.2 替换一个区间的数组

定义的内容参照2.1.6

	 arradd.replaceSubrange(1...3, with: ["win","macOS","iOS"])
	 print(arradd)
	 //输出结果 ["Java", "win", "macOS", "iOS", "C#", ".Net"]
3.3 删除指定区域的数组

定义的内容参照2.1.6,和获取值一样,这里同样通过索引删除对应的值

arradd.remove(at: 0)
    print(arradd)
    //["win", "macOS", "iOS", "C#", ".Net"]
	//Java被删除了
3.4 将数组内容排序

这里就采用倒序

	var value = ["A","C","B","H","I","F","D","E","J","G","K"]
	value.sort(by:{s1,s2 -> Bool in 
		if s1>s2 {
			return true
		}else{
			return false
		}
	})
	print(value)
	//输出结果["K", "J", "I", "H", "G", "F", "E", "D", "C", "B", "A"]
3.5 将数组内容过滤

定义内容采用3.4当中的value

	var new_val = value.filter({(item) -> Bool in
	    if item != "D"{ //过滤字母D
	        
	       return true
	        
	    }else{
	        
	        return false
	        
	    }
	})
	print(new_val)
//数据结果 ["K", "J", "I", "H", "G", "F", "E", "C", "B", "A"]
//D被过滤掉了
3.6 数组比较
	//数组比较
	var b1 = [1,2,3,4]
	var b2 = [1,2,3,4]

	if b1 == b2 {
	    print("相等")
	}else{
	    print("不等")
	}
	//输出结果:相等
3.7 遍历数组的几种方式

直接遍历:

	var eq = [1,2,3,4,5,6,7]
    for item in eq {
        print(item)
    }

运用区间运算符,选择遍历范围

	for item2 in eq[0...3] {
        print(item2)
    }

通过索引遍历

	for index in (0..<eq.count) {
        print(index)
    }

本节内容仅作自己学习用途,一定程度上借鉴了B站UP:Aimls
【Swift编程基础】公司内部培训视频 - 已完结2019年9月份 - ios,Macos,SwiftUI开发前基础知识培训

内容上仅为初步了解,底层还需移步至文档:集合类型 - Swift5.1教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值