日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Swift中的集合类之数组

發布時間:2025/3/21 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift中的集合类之数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好丟人,最近寫了一個摸不著東南西北的bug

說白了還是欠缺火候,下面總結一下Swift中的集合類。。。

空數組:

[類型]()

let array1 = [String]() ?

Array<類型>()

let array2 = Array<String>()

var array3 = Array<String>()

數組遍歷:

for-in:

forEach:

同時得到索引和值enumerated()

使用Interator遍歷數組

startIndex 返回第一個元素的位置,對于數組來說永遠都是0

endIndex 返回最后一個元素索引+1的位置,對于數組來說等同于count

數組查找:

判斷是否包含指定元素

let array1 = [Int](1...8)

let isExist = array1.contains(5)

print("1\(isExist)")

let exist2 = array1.contains { (e) -> Bool in

? ? print("每個元素\(e)")

? ? return e > 2

}

print("2\(exist2)")

let exist3 = array1.contains { (e) -> Bool in

? ? e > 3

}

print("3\(exist3)")

let exist4 = array1.contains(where: {$0 > 4})

print("4\(exist4)")

判斷所有元素符合某個條件

let array1 = [Int](1...8)

let isExist = array1.allSatisfy { (e) -> Bool in

? ? return e > 0

}

print("是否都大于0:\(isExist)")

查找元素

let array1 = [Int](1...8)

let first = array1.first { (e) -> Bool in

? ? print("第一個大于3的數\(e)")

? ? return e > 3

}

let last = array1.last { (e) -> Bool in

? ? print("最后一個大于3的數\(e)")

? ? return e > 3

}

輸出:

第一個大于3的數1

第一個大于3的數2

第一個大于3的數3

第一個大于3的數4

最后一個大于3的數8

查找索引:

firstIndex(of)返回指定元素在數組中出現的第一個位置

lastIndex(of: 5)返回指定元素在數組中出現的最后一個位置

let firstIndex = array1.firstIndex(of: 0)

print("0出現的第一個位置\(firstIndex)")

let lastIndex = array1.lastIndex(of: 5)

print("5出現的最后一個位置\(lastIndex ?? -1)")

輸出:

0出現的第一個位置nil

5出現的最后一個位置4

?

let num3 = array1.firstIndex { (e) -> Bool in

? ? e > 4

}

print("大于4的第一個數字位置\(num3 ?? -1)")

let num4 = array1.lastIndex { (e) -> Bool in

? ? e > 4

}

print("大于4的最后一個數字位置\(String(describing: num4))")

輸出:

大于4的第一個數字位置4

大于4的最后一個數字位置Optional(7)

數組添加和刪除:

var numbers = [Int](arrayLiteral: 2,3,5,6,7)

在末尾添加一個元素

numbers.append(9)

在末尾添加多個元素

numbers.append(contentsOf: [4,6])

在指定位置插入一個元素

numbers.insert(1, at: 0)

在指定位置插入多個元素

numbers.insert(contentsOf: [4,6], at: 0)

移除并返回指定位置的一個元素

numbers.remove(at: 3)

移除并返回數組的第一個元素

let first =? numbers.removeFirst()

移除并返回數組的最后一個元素

let last = numbers.removeLast()

移除并返回數組的最后一個元素(Optional),如果數組為空返回nil

let last2 = numbers.popLast()

移除數組前面多個元素

numbers.removeFirst(3)

移除數組后面多個元素

numbers.removeLast(3)

移除數組中指定范圍的元素

numbers.removeSubrange(2...5)

移除數組中的所有元素

numbers.removeAll()?// 數組容量.capacity為0

移除數組中的所有元素并保持容量

numbers.removeAll(keepingCapacity: true)

數組片段ArraySlice

var numbers = [Int](arrayLiteral: 2,3,5,6,7,9,7,0)

numbers.sort()

let lastA = numbers.drop { (e) -> Bool in

? ? print("\(e)")

? ? if e < 5 {

? ? ? ? return true

? ? }else{

? ? ? ? return false

? ? }

}

print("numbers = \(numbers)")

print("lastA = \(lastA)")

輸出結果:

0

2

3

5

numbers = [0, 2, 3, 5, 6, 7, 7, 9]

lastA = [5, 6, 7, 7, 9]

drop(:) 移除原數組符合指定條件的元素得到一個ArraySlice

細解:跳過一個元素之后,其余元素生成一個新序列,原序列不變。如果該元素應該被跳過,則閉包返回true,否則返回false。一旦返回false,它蔣不再被調用

除上面之外還有.prefix ?.suffix ?Range:?numbers[2...4]

數組的分組

var numbers = [Int](arrayLiteral: 2,3,5,6,7,9,7,0)

let index = numbers.partition { (e) -> Bool in

? ? return e > 3

}

let lastA = numbers[..<index]

let lastB = numbers[index...]

print("numbers = \(index) \(numbers)")

print("lastA = \(lastA)")

print("lastB = \(lastB)")

index是分組條件的開始位置,index前面的部分不滿足條件,index后面的部分滿足條件

數組的排序

numbers.sort()

numbers.sorted()

交換指定位置的兩個元素?numbers.swapAt(2, 4)

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的Swift中的集合类之数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。