IOS/Swift

[Swift ๊ธฐ์ดˆ ๋ฌธ๋ฒ•] ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ - Array, Dictionary, Set

hsooooo 2022. 3. 14. 11:44

๐ŸŽ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ(์ปฌ๋ ‰์…˜) - Array, Dictionary, Set

  • Array : "์ˆœ์„œ๊ฐ€ ์žˆ๋Š”" ๋ฆฌ์ŠคํŠธ ์ปฌ๋ ‰์…˜์ด๋ฉฐ, ์ธ๋ฑ์Šค(์ˆœ์„œ)๋ฅผ ํ†ตํ•ด ๊ฐ’์— ์ ‘๊ทผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
var integers: Array<Int> = Array<Int>()

# Array๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•
var integers: Array<Int> = [Int]()
var integers: Array<Int> = []
var integers: [Int] = Array<Int>()
var integers: [Int] = [Int]()
var integers: [Int] = []
var integers = [Int]()
  • Array์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ
    • Array์ด๋ฆ„.append(์›์†Œ) : Array์— ์›์†Œ๋ฅผ ๋‹ด๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.contains(์›์†Œ) : Array์— ์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ, ์žˆ๋‹ค๋ฉด true / ์—†๋‹ค๋ฉด false๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
    • Array์ด๋ฆ„.remove(at : (์ง€์šฐ๊ณ  ์‹ถ์€ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ)) : Array์— ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.removeLast() : Array์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.removeAll() : Array์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.count : Array์˜ ์›์†Œ ๊ฐฏ์ˆ˜๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.firstIndex(of: ์›์†Œ) / Array์ด๋ฆ„.lastIndex(of: ์›์†Œ) : ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ, ๋งˆ์ง€๋ง‰์œผ๋กœ ๋‚˜์˜ค๋Š” index๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„[index] = ์›์†Œ : Array์˜ ์›์†Œ๋ฅผ ๊ต์ฒดํ•˜๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„.first / Array์ด๋ฆ„.last : Array์˜ ์ฒซ๋ฒˆ์งธ / ๋งˆ์ง€๋ง‰์˜ ๊ฐ’์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ
    • Array์ด๋ฆ„[index] : Array์˜ ํŠน์ • index์˜ ๊ฐ’์„ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ

Array๋ฅผ let์œผ๋กœ ์„ ์–ธํ•˜๋ฉด ๋ถˆ๋ณ€ Array๊ฐ€ ๋œ๋‹ค. ์ด๋•Œ, ์‚ญ์ œ, ์ถ”๊ฐ€ ๋“ฑ ์›์†Œ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋˜์ง€๋งŒ ์›์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ํ–‰์œ„๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

Set(= ์ง‘ํ•ฉ)์€ ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ๋ฉค๋ฒ„๊ฐ€ ์œ ์ผํ•œ ๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜ ํƒ€์ž…์ด๋‹ค.

์›์†Œ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฏ์ˆ˜์˜ ๋ฉ”์†Œ๋“œ๋Š” Array์™€ ๋™์ผํ•˜๋‹ค. ๋Œ€์‹  index๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์€ Set์—์„œ๋Š” ์ˆœ์„œ ๊ฐœ๋…์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

 

  • Dictionary : Key์™€ Value ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ปฌ๋ ‰์…˜์ด๋ฉฐ, Array์™€๋Š” ๋‹ค๋ฅด๊ฒŒ "์ˆœ์„œ"๊ฐ€ ์ ˆ๋Œ€ ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. Key ๊ฐ’์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ๋•Œ Dictionary ํ˜•ํƒœ๋Š” ์œ ์šฉํ•˜๋‹ค.
# Dictionary๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•
var dic : [Int: String] = [:]
var dic2 = [Int: String]()
var dic3 : Dictionary = [Int:String]()
var dic4 : Dictionary<Int, String> = Dictionary<Int, String>()
  • Dictionary์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์†Œ๋“œ
    • Dictionary์ด๋ฆ„.updateValue("key ๊ฐ’", forKey: (๋ฐ”๊พธ๊ณ  ์‹ถ์€ Value ๊ฐ’)) : Key๊ฐ’์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด Value๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Dictionary์ด๋ฆ„[(Key ๊ฐ’)] = (Value ๊ฐ’) : Key, Value ๊ฐ’์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅ.

      ์ด๋•Œ, dic[1]! ์ฒ˜๋Ÿผ ๋’ค์— !๊ฐ€ ๋ถ™๊ฒŒ ๋˜๋Š”๋ฐ Swift ์ž…์žฅ์—์„œ ์ด key ๊ฐ’์— ๋Œ€ํ•œ Value๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, Optionalํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜
      ๋”ฐ๋ผ์„œ ๊ฐ’์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” !(์–ธ๋ž˜ํ•‘)์„ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ๊บผ๋‚ด์˜จ๋‹ค.
    • Dictionary์ด๋ฆ„.removeValue(forKey: ํ‚ค๊ฐ’) : Dictionary์˜ ๊ฐ’์„ ์‚ญ์ œ ํ•  ๋•Œ๋„ Key ๊ฐ’์„ ํ†ตํ•ด ์ ‘๊ทผ 
    • Dictionary์ด๋ฆ„.removeAll() : Dictionary์˜ ๋ชจ๋“  Key์™€ Value๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ

let์œผ๋กœ ๋ถˆ๋ณ€ Dictionary๋ฅผ ์„ ์–ธํ•˜๋ฉด ๊ฐ’ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.