[Swift] Dictionary
iOS/Swift2018. 5. 23. 18:49
Dictionary
- Element = Unique Key + Value
- Unordered Collection
※ Dictionary Literal
//var dictFromLiteral = ["key 1": "value 1", "key 2": "value 2"]
//var dictFromLiteral = [1: "value 1", 2: "value 2"]
var dictFromLiteral = ["1": 1, "2": 2]
//var dictFromLiteral = [:]
dictFromLiteral = [:]
※ Dictionary Type
let words1: Dictionary = ["A": "Apple", "B": "Banana", "C": "City"]
let words2: [String: String] = ["A": "Apple", "B": "Banana", "C": "City"]
let words3 = ["A": "Apple", "B": "Banana", "C": "City"]
※ Number of Element
var words = ["A": "Apple", "B": "Banana", "C": "City"]
let countOfWords = words.count
if !words.isEmpty {
print("\(countOfWords) element(s)")
} else {
print("empty dictionary")
}
※ Retrieve an Element
if let aValue = words["A"] {
print(aValue)
} else {
print("Not found")
}
if let zValue = words["Z"] {
print(zValue)
} else {
print("Not found")
}
print(words.keys)
print(words.values)
let keys = Array(words.keys)
let values = Array(words.values)
※ Searching
//var words = ["A": "Apple", "B": "Banana", "C": "City"]
if words.contains(where: { (key, value) -> Bool in
return key == "A"
}){
print("contains A key.")
}
if words.contains(where: { (dict) -> Bool in
return dict.value.lowercased() == "City".lowercased()
}) {
print("contains City value.")
}
if words.contains(where: { $0.1.lowercased() == "City".lowercased() }) {
print("contains City value.")
}
let filteringResult = words.filter { (key, value) -> Bool in
return value.lowercased().contains("a")
}
for (key, value) in filteringResult {
print("\(key) - \(value)")
}
※ Add a New Element
words = ["A": "A"]
words["A"] // Key -> Unique
words["A"] = "Apple"
words
words["B"] = "Banana"
words
words["B"] = "Blue"
words
※ Change an Existing Element
words = [:]
words["A"] = "Apple111"
words
words = [:]
if let oldValue = words.updateValue("Apple", forKey: "A") {
print("\(oldValue) => \(words["A"]!)")
} else {
print("+ \(words["A"]!)")
}
words
if let oldValue = words.updateValue("Apricot", forKey: "A") {
print("\(oldValue) => \(words["A"]!)")
} else {
print("+ \(words["A"]!)")
}
※ Remove an Element
//words = ["A": "Apple", "B": "Banana", "C": "City"]
words = ["A": "Apple", "B": "Banana", "C": "City", "Z": "Zoo"]
words["Z"] = "ZZZ"
words["Z"] = nil
words
words["EE"] = nil
words
words = ["A": "Apple", "B": "Banana", "C": "City",
"D": "Drama", "E": "Earth", "F": "Fuel"]
if let removedValue = words.removeValue(forKey: "D") {
print("\(removedValue) removed!")
}
words
words.removeAll()
※ Enumerating an Dictionary
let dict = ["A": "Apple", "B": "Banana", "C": "City"]
for (key, value) in dict {
print("\(key): \(value)")
}
for (key, _) in dict {
print(key)
}
for (_, value) in dict {
print(value)
}
var d = [String: [String]]()
//d["d"] = "A"
d["d"] = ["A"]
let _ = [String: [String: Int]]()
'iOS > Swift' 카테고리의 다른 글
[Swift] Enumerations (0) | 2018.05.23 |
---|---|
[Swift] Set (0) | 2018.05.23 |
[Swift] Array (0) | 2018.05.23 |
[Swift] Control Transfer Statement (0) | 2018.05.23 |
[Swift] Tuples (0) | 2018.05.23 |