Swift数组的常用方式
Swift数组的常用方式

Swift数组的常用方式

Swift 中数组 (Array) 是一种有序集合,支持存储相同类型的元素,并提供丰富的操作功能。以下是数组的常用方式和操作示例:

数组的创建

1、空数组

var emptyArray: [Int] = []
let anotherEmptyArray = Array<String>()

2、带默认值的数组

let repeatedArray = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0]

3、使用字面量

let fruits = ["Apple", "Banana", "Cherry"]

基本操作

1、添加元素

var numbers = [1, 2, 3]
numbers.append(4)               // [1, 2, 3, 4]
numbers += [5, 6]               // [1, 2, 3, 4, 5, 6]
numbers.insert(0, at: 0)        // [0, 1, 2, 3, 4, 5, 6]

2、删除元素

numbers.remove(at: 0)           // 移除索引 0 的元素
numbers.removeLast()            // 移除最后一个元素
numbers.removeAll()             // 清空数组

3、修改元素

var names = ["John", "Jane", "Doe"]
names[1] = "Alice"              // 修改指定位置的元素
names[0...1] = ["Bob", "Eve"]   // 替换一部分元素

4、访问元素

let first = numbers.first       // 获取第一个元素
let last = numbers.last         // 获取最后一个元素
let count = numbers.count       // 元素总数

遍历数组

1、使用 for-in

for fruit in fruits {
    print(fruit)
}

2、使用 enumerated 获取索引和值

for (index, fruit) in fruits.enumerated() {
    print("第 \(index + 1) 个水果是 \(fruit)")
}

3、使用高阶函数

fruits.forEach { print($0) }

常用方法

1、判断是否包含元素

if fruits.contains("Banana") {
    print("有香蕉")
}

2、查找元素的索引

if let index = fruits.firstIndex(of: "Cherry") {
    print("Cherry 的索引是 \(index)")
}

3、排序

var numbers = [3, 1, 2]
numbers.sort()                   // 原地排序,结果:[1, 2, 3]
let sortedNumbers = numbers.sorted(by: >) // 降序排列,结果:[3, 2, 1]

4、过滤

let filtered = numbers.filter { $0 > 1 } // [2, 3]

5、转换

let doubled = numbers.map { $0 * 2 } // [2, 4, 6]

6、规约

let sum = numbers.reduce(0, +) // 求和,结果:6

切片操作

1、子数组

let subArray = numbers[1...2]   // 获取索引 1 到 2 的子数组

2、切片数组转为数组

let array = Array(subArray)

多维数组

let matrix = [[1, 2], [3, 4], [5, 6]]
print(matrix[0][1]) // 访问第一行第二列,结果:2

合并数组

let combined = [1, 2] + [3, 4]  // [1, 2, 3, 4]

高级操作

1、移动元素位置

numbers.swapAt(0, 1)           // 交换索引 0 和 1 的元素

2、移除重复值

let uniqueNumbers = Array(Set(numbers)) // [1, 2, 3],顺序不定

3、打乱数组

let shuffled = numbers.shuffled()

4、截取前 n 个元素

let topTwo = numbers.prefix(2) // [1, 2]

5、截取后 n 个元素

let lastTwo = numbers.suffix(2) // [2, 3]

示例代码:综合使用

var fruits = ["Apple", "Banana", "Cherry", "Date"]

// 添加和删除
fruits.append("Elderberry")
fruits.remove(at: 1)

// 查找和排序
if let index = fruits.firstIndex(of: "Cherry") {
    print("Cherry 的索引是 \(index)")
}
fruits.sort()

// 遍历
fruits.forEach { print($0) }

// 高阶函数
let uppercasedFruits = fruits.map { $0.uppercased() }
print(uppercasedFruits)

数组特性总结

类型安全:数组只能存储一种类型的元素。

值类型:数组是值类型,传递时会进行拷贝。

性能优异:支持 O(1) 的随机访问和高效的插入、删除操作。

数组在 Swift 中是一种灵活且功能强大的数据结构,提供了丰富的功能来满足各种开发需求。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注