[Swift] Array
iOS/Swift2018. 5. 23. 18:34
Array
- Ordered Collection
- Zero-based Integer Index
※ Mutable, Immutable
var variableArray = [1, 2]
variableArray = []
let constantArray = [1, 2]
//constantArray = []
※ Array Type
var arrayFromLiteral = [1, 2, 3]
arrayFromLiteral = []
//let emptyArray = []
//let emptyArray: [String] = []
※ Initialize
let strArray1: Array = ["apple", "orange", "melon"]
let strArray2: [String] = ["apple", "orange", "melon"]
let strArray3 = ["apple", "orange", "melon"]
let strArray4 = Array(repeating: "iOS", count: 5)
//let strArray5 = ["apple", 3.14, 1]
※ Number of Elements
let fruits = ["Apple", "Orange", "Banana"]
let countOfFruits = fruits.count
if !fruits.isEmpty {
print("\(countOfFruits) element(s)")
} else {
print("empty array")
}
※ Retrieve an Element
- [Int]
- [Array.Index]
- [a...b]
- [a..<b]
// 0 1 2
// fruits = ["Apple", "Orange", "Banana"]
//fruits[0]
//fruits[2]
//fruits[123]
//fruits.startIndex
//fruits.endIndex
fruits[fruits.startIndex]
fruits[fruits.endIndex - 1]
fruits.startIndex == 0
fruits.endIndex - 1 == 2
※ Searching
let alphabet = ["A", "B", "C", "D", "E"]
if alphabet.contains("A") {
print("contains A")
}
if alphabet.contains(where: { str -> Bool in
// code...
return str == "A"
}) {
print("contains A")
}
if let index = alphabet.index(of: "D") {
print("index of D: \(index)")
}
※ Add a new Element
//var alphabetArray: Array = []
//var alphabetArray: [String] = []
//var alphabetArray = [String]()
var alphabetArray = ["A"]
alphabetArray.append("B")
//alphabetArray.append(1)
alphabetArray += ["C"]
var alphabetArray2 = ["Q", "W", "E"]
alphabetArray + alphabetArray2
alphabetArray.insert("S", at: 0)
alphabetArray.insert("F", at: 3)
※ Change an Existing Element
alphabetArray = ["A", "B", "C"]
alphabetArray[0]
alphabetArray[0] = "Z"
alphabetArray
alphabetArray = ["A", "B", "C"]
alphabetArray[alphabetArray.startIndex ..< alphabetArray.endIndex.advanced(by: -1)] = ["X", "Y"]
alphabetArray
1...5
1..<5
1...
alphabetArray = ["A", "B", "C", "D", "E", "F"]
alphabetArray[2...] = ["Q", "W", "E", "R"]
alphabetArray
※ Remove an Element
alphabetArray = ["A", "B", "C", "D", "E"]
let removed = alphabetArray.remove(at: 0)
removed
alphabetArray
alphabetArray.removeAll()
alphabetArray.removeAll(keepingCapacity: true)
// index 찾아 지우기
alphabetArray = ["A", "B", "C", "D", "E"]
let indexC = alphabetArray.index(of: "C")
alphabetArray.remove(at: indexC!)
alphabetArray
※ Sorting
alphabetArray = ["A", "B", "C", "D", "E"]
for i in 0 ..< (alphabetArray.count - 1) {
let j = Int(arc4random_uniform(UInt32(alphabetArray.count)))
alphabetArray.swapAt(i, j)
}
alphabetArray
// sorted vs sort
//public func sorted() -> [Element]
//public mutating func sort()
var sortedArray = alphabetArray.sorted()
sortedArray
alphabetArray
alphabetArray.sort()
alphabetArray
// sort by closure syntax
sortedArray = alphabetArray.sorted { $0 > $1 }
alphabetArray.sorted(by: >= )
sortedArray
alphabetArray.sort { $0 > $1 }
alphabetArray
※ Enumerating an Array
let array = ["Apple", "Orange", "Melon"]
for value in array {
if let index = array.index(of: value) {
print("\(index) - \(value)")
}
}
// reversed
for value in array.reversed() {
if let index = array.index(of: value) {
print("\(index) - \(value)")
}
}
//enumerated
for tuple in array.enumerated() {
print("#\(tuple.0) - \(tuple.1)")
// print("#\(tuple.offset) - \(tuple.element)")
}
//enumerated
for (index, word) in array.enumerated() {
print("#\(index) - \(word)")
}
'iOS > Swift' 카테고리의 다른 글
[Swift] Set (0) | 2018.05.23 |
---|---|
[Swift] Dictionary (0) | 2018.05.23 |
[Swift] Control Transfer Statement (0) | 2018.05.23 |
[Swift] Tuples (0) | 2018.05.23 |
[Swift] Loops (0) | 2018.05.23 |