ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

iOS/Swift

[iOS/Swift] Collection Type - Array

Neoguri๐Ÿฆ 2022. 5. 23. 00:01

Collection Type


์—ฌ๋Ÿฌ ์–ธ์–ด์—์„œ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๋Š”๊ฒƒ์ฒ˜๋Ÿผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š”๋ฐ ๊ทธ๊ฒƒ์„ Collection Types๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
Swift์—์„œ๋„ ์ด๋Ÿฐ๊ฒƒ๋“ค์„ ์ง€์›ํ•˜๋Š”๋ฐ์š”!! ๋ฐ”๋กœ Array, Dictionary, Set๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! ๋Œ€๋ถ€๋ถ„ ์ต์ˆ™ํ•˜์‹ค ๊ฒƒ ๊ฐ™๋„ค์š”!
์ด๋“ค์€ ํŠน์„ฑ์ด ์žˆ์–ด์š”.

- ๊ธฐ๋ณธ์ ์œผ๋กœ mutableํ•˜๋‹ค.
- ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค.

mutable์€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ์ด๊ตฌ์š”. ์ œ๋„ค๋ฆญ์€ ์—ฌ๊ธฐ์„œ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ์–‘์ด ๋งŽ์•„์„œ ๋‹ค์Œ์— ๋‹ค๋ฃจ๋„๋ก ํ• ๊ฒŒ์š”.

๋จผ์ € Array ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
์ต์ˆ™ํ•˜์‹œ๊ฒ ์ง€๋งŒ ๊ฐœ๋ฐœ์ž ๋ฌธ์„œ๋ฅผ ๋ณด๋Š” ์Šต๊ด€์„ ๊ธฐ๋ฅผ ๊ฒธ ๊ณต์‹๋ฌธ์„œ์—์„œ ์ •์˜๋ฅผ ํ•œ๋ฒˆ ์‚ดํŽด ๋ณผ๊ฒŒ์š”!

์ˆœ์„œ๊ฐ€ ์žˆ๊ณ , random-accessํ•œ ํƒ€์ž…์ด๋‹ค... ๋ญ”๋ง์ด์ง€..
array์€ index๊ฐ€ ์žˆ์–ด์„œ ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค๋Š” ๋ง์€ ์•Œ๊ฒ ๋Š”๋ฐ
random-accessํ•˜๋‹ค..
์ด๊ฒƒ๋‘ ๊ณต์‹๋ฌธ์„œ๋กœ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ฃ 

์ธ๋ฑ์Šค ์ ‘๊ทผ์— ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ์นœ๊ตฌ ๊ฐ™๋„ค์š”.
overview๋ฅผ ๋ณด๋‹ˆ ์ž„์˜์˜ ์ธ๋ฑ์Šค ์ ‘๊ทผ์— ๋Œ€ํ•ด O(1)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ์ ‘๊ทผํ•œ๋‹ค๊ณ  ํ•˜๋„ค์š”..
๊ถ๊ธˆํ•˜์‹ ๋ถ„์€ ์—ฌ๊ธฐ ๋งํฌ ๋ฅผ ๋ณด์‹œ๋ฉด ๋ ๊ฒƒ๊ฐ™์•„์š”!

array์˜ ์ •์˜๋ฅผ ์‚ดํŽด ๋ดค์œผ๋‹ˆ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๋ด์•ผ๊ฒ ์ฃ ?

๋นˆ ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ

๋นˆ ๋ฐฐ์—ด์˜ ์„ ์–ธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด์ค„ ์ˆ˜ ์žˆ์–ด์š”!

var intArray1: [Int] = []
var intArray2 = [Int]()
var intArray3: Array<Int> = []

๋ฐฐ์—ด ์›์†Œ์˜ ํƒ€์ž…์€ ๋‹ค๋ฅธ ํƒ€์ž…์„ ๋„ฃ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค!

๊ทธ๋ ‡๋‹ค๋ฉด ์›์†Œ๊ฐ€ ์žˆ๋Š” ๋ฐฐ์—ด๋„ ํ•œ๋ฒˆ ์„ ์–ธํ•ด ๋ณผ๊ฒŒ์š”.

var intArray5: [Int] = [1,2,3]
var intArray6 = [1,2,3]

์œ„์ฒ˜๋Ÿผ ๋ฐฐ์—ด์„ ์„ ์–ธํ•ด ๋ณด์•˜๋Š”๋ฐ์š”!!
intArray6์ฒ˜๋Ÿผ ํ•ด๋„ swift์—์„œ ํƒ€์ž…์ถ”๋ก ์„ ํ†ตํ•ด ์„ ์–ธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!(์ด ๋ฐฉ๋ฒ•์€ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ๋•Œ๋ฌธ์— ์ถ”์ฒœํ•˜์ง€ ์•Š์•„์š”)
(ํ•˜์ง€๋งŒ ๋นˆ๋ฐฐ์—ด์ด๋‚˜, ์›์†Œ์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค!!!!!)
์›์†Œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์ธ ๋ฐฐ์—ด์ผ ์„ ์–ธํ•˜๊ณ  ์‹ถ์œผ์‹œ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ์„ ์–ธํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

var intArray7: [Any] = [1,"neoguri"]
var intArray8 = [1,"neoguri"] as Any

Anyํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•ด ์ฃผ์‹œ๊ฑฐ๋‚˜ ํƒ€์ž…์บ์ŠคํŒ…์„ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ์— ์ ‘๊ทผํ•ด ๋ณผ๊ฒŒ์š”!!
๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋„ฃ์–ด ํ™•์ธํ•˜๊ฑฐ๋‚˜
๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด๋‚˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”~
firstIndex๋Š” ๊ฐ™์€ ๊ฐ’์ด ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค!

var intArray5: [Int] = [1,2,3]
var intArray6 = [1,2,3]

// 0๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๊ฐ’
intArray5[0] // 1
intArray5.first // 1

// ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์˜ ๊ฐ’
intArray6[2] // 3
intArray6.last // 3

intArray5.firstIndex(of: 1) // 1

์ด๋ ‡๊ฒŒ ์‰ฝ๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

collection Type์€ ์ˆ˜์ •๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ–ˆ์ฃ ?
ํ•œ๋ฒˆ ํ•ด๋ณผ๊ฒŒ์š”!

๋ฐฐ์—ด์—์„œ ์›์†Œ๋ฅผ ๋„ฃ์–ด๋ณผ๊ฒŒ์š”!

var intArray5: [Int] = [1,2,3]
var intArray6 = [1,2,3]

intArray5.append(1) // [1,2,3,1]
intArray5.insert(4, at: 3) // [1,2,3,4,1]

print(intArray5 + [10,11]) // [1,2,3,4,1,10,11]
print(intArray5.append(contentsOf: [10, 11])) // [1,2,3,4,1,10,11]
// ์›ํ•˜๋Š” ์ธ๋ฑ์Šค์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Œ
// [1,2,3,4,1,10,11] 
// ์ธ๋ฑ์Šค๊ฐ€ 5 ์ด๋ฏ€๋กœ ์œ„ ์™€ ๊ฐ™์Œ
// print(intArray5.append(contentsOf: [10, 11], at: 5)


intArray += [20, 22] // ์ด๋ ‡๊ฒŒ๋„ ์›์†Œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์–ด์š”

์ด๋ฒˆ์—” ๋ฐฐ์—ด์—์„œ ์›์†Œ๋ฅผ ์‚ญ์ œํ•ด ๋ณผ๊ฒŒ์š”!

intArray5: [Int] = [1, 2, 3]

intArray5.remove(at:0) // intArray5 = [2, 3]
intArray5.removeLast() // ๋งˆ์ง€๋ง‰ ์›์†Œ ์‚ญ์ œ [2]
intArray5.removeAll() // ์›์†Œ ๋ชจ๋‘ ์‚ญ์ œ []

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํžˆ ์‚ญ์ œ๋ฅผ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

๋” ๋งŽ์€ ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ ๋“ค์ด ์žˆ์ง€๋งŒ ๋‹ค์Œ์— ๋” ์ถ”๊ฐ€ํ•ด ๋ณผ๊ฒŒ์š”!!
Swift๋กœ ์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜์‹œ๋Š” ๋ถ„๋“ค์€ ๋ฐฐ์—ด์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋ณด๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„์š”!(๋‚˜๋„....)
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ