Swfit:数组、字典、集合

本文深入讲解Swift中的数组、字典和集合三种基本数据结构的使用方法,包括初始化、操作、遍历及比较等内容,帮助读者掌握Swift数据处理的核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数组

import UIKit

var arr = [Int]()
for i in 0 ..< 10 {
    arr.append(i)
}
arr[2 ... 5]
arr.contains(11) // 返回一个布尔值
arr.index(of: 1) // 返回1对应的下标

for (index, value) in arr.enumerated() {
    print("\(index + 1): \(value)")
}

let arr2 = arr
arr == arr2 // 内容是一样的,返回true

arr += [10, 11] // 添加新元素
arr.insert(12, at: 12)
arr.remove(at: 0)
arr.removeSubrange(2 ... 4) // 去除第3,4,5项
arr[0 ... 1] = [100, 100, 100] // 将前两个数换成三个100
arr

var board = [[1, 2, 3], [4, 5, 6]]
board += [[0]] // 二维数组用 += 添加元素要括两层数组
print(board)

// NSArray 可以承载不同的数据类型,是一个类
// Swift中的数组不能承载不同的数据类型,是一个结构体

var  arr3: NSArray = [1, "sss"] // 可以有不同的类型

2. 字典

import Foundation

var dic = [String: Int]() //申明空字典

dic["a"] = 1
dic["b"] = 2
dic.count
dic.isEmpty
Array(dic.keys) // 所有键组成一个数组
Array(dic.values) // 所有值组成一个数组

for key in dic.keys {
    print(key)
}

for (key, value) in dic {
    print("\(key): \(value)")
}

let dic2 = dic
dic == dic2 // 字典是结构体类型,只用于判断内容是否相等,没有引用的概念

// 修改值
dic["a"] = 10 // 方法一
dic.updateValue(4, forKey: "a") // 方法二,并返回旧的值
dic

// 添加
dic["c"] = 3
dic.updateValue(2, forKey: "d")

//删除
dic["c"] = nil
dic.removeValue(forKey: "a")
dic

3. 集合

import Foundation
import UIKit

var num = Set<Int>()

var num2 = Set([1, 3, 3]) // 去重

num2.count
num2.isEmpty
num2.first // 随机的取出一个元素

for i in num2 {
    print(i)
}

let num3 = num2
num2 == num3

// 增
num2.insert(4)
num2

// 删
num2.remove(4)
num2

// 没有改

// 并
var set1 = Set([1, 2, 3, 4])
var set2 = Set([2, 3, 4, 5])
set1.union(set2) // 并不改变set1
set1
set1.formUnion(set2) // 改变set1
set1

// 交
set1.intersection(set2)
set1
set1.formIntersection(set2)
set2

// 差
var set3 = Set([1, 2, 3, 4])
var set4 = Set([2,3,5])
set3.subtracting(set4) // set3独有而set4没有,不改变set3
set3
set3.subtract(set4) //改变set3
set3

 注释:

一、元组和集合不要弄混。

元组类似于结构体,他有如下特点:

1 可以有任意多个值

2 不同的值可以有不同的类型

3 用小括号括起来

4. 元组也有类型,比如(Int, Int)

 

二、数组、字典和集合都用中括号

只不过

数组:不用显示注明,默认数组类型

字典:用冒号来声明

集合:需要用Set强制类型转换或者显示声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值