Skip to content

Latest commit

ย 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 

README.md

์ปฌ๋ ‰์…˜(Collection)

๐Ÿ’ก ์Šค์œ„ํ”„ํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒํ˜•(ํƒ€์ž…)์ด๋‹ค.

์Šค์œ„ํ”„ํŠธ์—์„œ ์ปฌ๋ ‰์…˜ ์ž๋ฃŒํ˜•์€ ์ด ์„ธ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • Array(๋ฐฐ์—ด): ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜
  • Dictionary(์‚ฌ์ „): ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ•˜๋‚˜์˜ ์Œ์œผ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•˜๋ฉฐ ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ปฌ๋ ‰์…˜
  • Set(์ง‘ํ•ฉ): ์ˆ˜ํ•™์—์„œ ์ง‘ํ•ฉ๊ณผ ๋น„์Šทํ•œ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ปฌ๋ ‰์…˜

1. ๋ฐฐ์—ด(Array)

  • ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์—๋Š” ๋™์ผํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์ˆœ์„œ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์€ ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
var numsArray = [1, 2, 3, 4, 5]

// ์ •์‹
let strArray1: Array<String> = []
// ๋‹จ์ถ•
let strArray2: [String] = []

๋นˆ ๋ฐฐ์—ด์ผ ๊ฒฝ์šฐ ํƒ€์ž…์ถ”๋ก ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๊ฐ€ ๋ฐฐ์—ด์ž„์„ ๋ช…์‹œํ•˜์ž!


  • ๋ฐฐ์—ด์˜ ๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ
numsArray.count // 5
numsArray.isEmpty // false
numsArray.contains(1) // true
numsArray.randomelement()
numsArray.swapAt(0, 1) // 0๊ณผ 1 ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์š”์†Œ๋ฅผ ์„œ๋กœ ๋ฐ”๊ฟˆ

numsArray.last  // Optional(5)
numsArray.first // Optional(1)
numsArray.endIndex // 4

numsArray.index(1, offsetBy: 2) // 4, index 1๋กœ๋ถ€ํ„ฐ 2๋งŒํผ ๋–จ์–ด์ง„ ์š”์†Œ ์ถœ๋ ฅ
numsArray.firstIndex(of: 3) // 3, ์•ž์—์„œ ๋ถ€ํ„ฐ ํ–ˆ์„๋•Œ ํ•ด๋‹น ์š”์†Œ๊ฐ€ ๋ช‡๋ฒˆ์งธ์ธ์ง€

numsArray.insert(1, at: 1) // [1, 1, 2, 3, 4, 5]
numsArray.insert(contentsOf: [1, 2, 3], at: 0) // [1, 2, 3, 1, 2, 3, 4, 5]

2. Dictionary(์‚ฌ์ „)

  • ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค์™€ ๊ฐ’์œผ๋กœ ํ•˜๋‚˜์˜ ์Œ์œผ๋กœ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•˜๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค.
  • key์€ ์œ ์ผํ•ด์•ผํ•˜๋ฉฐ value๋Š” ์ค‘๋ณต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • key๊ฐ’์€ Hashable ํ•ด์•ผํ•œ๋‹ค.
  • ์ˆœ์„œ๊ฐ€ ์—†๋‹ค.

๐Ÿ’ก Hashable
์–ด๋–ค ํƒ€์ž…์ด Hashable์ด๋ผ๋Š” ๋œป์€ ํ•ด๋‹น ํƒ€์ž…์„ ํ•ด์‹œํ•จ์ˆ˜์˜ input๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค. Hashable์ด ๋˜๋ฉด ๊ฐ’์˜ ์œ ์ผ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

var dict = ["A": "Appple", "B": "Banana", "C": "Candy"]

// ๋‹จ์ถ• ๋ฌธ๋ฒ•
var words: [String: String] = [:]

// ์ •์‹ ๋ฌธ๋ฒ•
let words: Dictionary<Int, String>

  • ๋ฐ˜๋ณต๋ฌธ๊ณผ์˜ ๊ฒฐํ•ฉ
let dict = ["A": "Appple", "B": "Banana", "C": "Candy"]

for (key, value) in dict {
	print("\(key): \(value)")
}

for (_, value) in dict {
	print("\(key): \(value)")
}

for (key, _) in dict {
	print("\(key): \(value)")
}

key๋‚˜ value ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉ์‹œ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


์ฐธ๊ณ ) KeyValuePairs
ํ‚ค๊ฐ€ ์žˆ๊ณ  ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค.

let pairs: KeyValuePairs = ["A": "Appple", "B": "Banana", "C": "Candy"]

3. Set(์ง‘ํ•ฉ)

  • ์ˆ˜ํ•™์—์„œ์˜ ์ง‘ํ•ฉ๊ณผ ๋น„์Šทํ•œ ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•˜๋Š” ์ˆœ์„œ๊ฐ€ ์—†๋Š” ์ปฌ๋ ‰์…˜์ด๋‹ค.
  • ๊ฐ ์š”์†Œ๋Š” Hashable ํ•ด์•ผํ•œ๋‹ค.
  • ์ˆœ์„œ๊ฐ€ ์—†๋‹ค.
var set: Set = [1, 2, 3, 4, 5]

var set: Set<Int> = [1, 2, 3, 4, 5]

5. Foundation ์ปฌ๋ ‰์…˜

  • NSArray, NSDictionary, NSSet ๋“ฑ Objective-C ์ปฌ๋ ‰์…˜์ด๋‹ค.
  • ๊ตณ์ด ๊ณต๋ถ€ํ• ํ•„์š” ์—†๊ณ  ํ•„์š”ํ• ๋•Œ๋งˆ๋‹ค ๊ฒ€์ƒ‰ํ•ด์„œ ์“ฐ๋ฉด๋œ๋‹ค.