[Swift] 배열(Array)

2024. 3. 13. 16:55·Apple/Swift
목차
  1. Swift 배열이란?
  2. 배열의 생성
  3. 배열의 조작
  4. 요소 추가
  5. 요소 접근 및 변경
  6. 요소 삭제
  7. 배열의 고급 기능
  8. 배열의 순회
  9. 배열의 정렬
  10. 배열의 필터링 및 변형
  11. 배열의 성능 최적화
  12. 결론
728x90
반응형

안녕하세요! 피피아노입니다🎵

 

이번 포스팅에서는 Swift에서 자주 사용하는 데이터 구조 중 하나인 배열(Array)에 대해 알아보고 Swift 배열의 기본 개념, 생성, 조작 방법, 그리고 고급 기능들에 대해 간단하게 정리해보겠습니다. 

 

그럼 바로 시작하겠습니다.

 

Swift 배열이란?

배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. 배열은 인덱스를 통해 요소에 접근할 수 있으며, 요소의 순서는 배열에 추가된 순서대로 유지됩니다. Swift 배열은 값 타입(value type)으로, 복사 시 독립적으로 동작합니다.

 

배열의 생성

배열을 생성하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 대괄호 []를 사용하는 것입니다.

// 빈 배열 생성
var emptyArray: [Int] = []

// 초기 값이 있는 배열 생성
var numbers: [Int] = [1, 2, 3, 4, 5]

// 타입 추론을 사용한 배열 생성
var fruits = ["Apple", "Banana", "Cherry"]

빈 배열을 생성할 때는 배열의 타입을 명시해야 합니다.

 

배열의 타입은 Array<Element> 혹은 [Element]로 표기할 수 있습니다.

 

배열의 조작

요소 추가

배열에 요소를 추가하는 방법은 여러 가지가 있습니다.

var fruits = ["Apple", "Banana"]

// append() 메서드를 사용하여 요소 추가
fruits.append("Cherry")

// += 연산자를 사용하여 여러 요소 추가
fruits += ["Date", "Elderberry"]

요소 접근 및 변경

배열의 요소는 인덱스를 사용하여 접근할 수 있습니다. Swift 배열의 인덱스는 0부터 시작합니다.

var fruits = ["Apple", "Banana", "Cherry"]

// 인덱스를 사용하여 요소 접근
let firstFruit = fruits[0] // "Apple"

// 인덱스를 사용하여 요소 변경
fruits[1] = "Blueberry" // ["Apple", "Blueberry", "Cherry"]

요소 삭제

배열에서 요소를 삭제하는 방법도 다양합니다.

var fruits = ["Apple", "Banana", "Cherry"]

// 인덱스를 사용하여 요소 삭제
fruits.remove(at: 1) // ["Apple", "Cherry"]

// 첫 번째 요소 삭제
fruits.removeFirst() // ["Cherry"]

// 마지막 요소 삭제
fruits.removeLast() // []

// 모든 요소 삭제
fruits.removeAll() // []

 

배열의 고급 기능

배열의 순회

배열의 모든 요소를 순회하는 방법은 다음과 같습니다.

let fruits = ["Apple", "Banana", "Cherry"]

// for-in 루프를 사용한 순회
for fruit in fruits {
    print(fruit)
}

// 인덱스와 함께 순회
for (index, fruit) in fruits.enumerated() {
    print("Item \(index + 1): \(fruit)")
}

배열의 정렬

배열의 요소를 정렬하는 방법도 간단합니다.

var numbers = [5, 2, 3, 1, 4]

// 오름차순 정렬
numbers.sort() // [1, 2, 3, 4, 5]

// 내림차순 정렬
numbers.sort(by: >) // [5, 4, 3, 2, 1]

배열의 필터링 및 변형

Swift 배열은 고차 함수(higher-order functions)를 사용하여 필터링과 변형을 쉽게 할 수 있습니다.

let numbers = [1, 2, 3, 4, 5]

// 필터링: 짝수만 추출
let evenNumbers = numbers.filter { $0 % 2 == 0 } // [2, 4]

// 변형: 모든 요소에 2를 곱함
let doubledNumbers = numbers.map { $0 * 2 } // [2, 4, 6, 8, 10]

 

배열의 성능 최적화

배열은 값 타입이기 때문에, 배열을 수정할 때마다 새로운 배열이 생성됩니다. 그러나 Swift는 내부적으로 복사 지연(Copy-on-Write) 최적화를 사용하여 성능을 최적화합니다. 이는 배열이 수정되지 않는 한, 동일한 메모리를 공유하도록 합니다.

 

결론

Swift 배열은 매우 유용하고 강력한 데이터 구조입니다. 배열을 사용하면 데이터를 쉽게 저장하고 조작할 수 있으며, 다양한 고급 기능을 통해 효율적인 데이터 처리가 가능합니다. 배열을 잘 활용하면 코드를 더 간결하고 효율적으로 작성할 수 있습니다.


감사합니다.

잘못된 내용이 있거나 더 좋은 내용 피드백은 언제나 환영합니다!

궁금하신 부분은 댓글로 질문 부탁드립니다!

728x90
반응형

'Apple > Swift' 카테고리의 다른 글

[Swift] 고차함수(Higher-order function) 이해하기  (2) 2024.06.27
[Swift] Implicitly Unwrapped Optional (암묵적 옵셔널 추출)과 Optional Chaining (옵셔널 체이닝)  (2) 2024.04.11
[Swift] 초기화(Initializers) 알아보기 (6) - Failable Initalizers  (0) 2024.02.22
[Swift] 초기화(Initializers) 알아보기 (5) - 요구 이니셜라이저  (0) 2024.02.16
[Swift] 초기화(Initializers) 알아보기 (4) - 이니셜라이저의 상속 재정의와 자동 상속  (10) 2024.02.13
  1. Swift 배열이란?
  2. 배열의 생성
  3. 배열의 조작
  4. 요소 추가
  5. 요소 접근 및 변경
  6. 요소 삭제
  7. 배열의 고급 기능
  8. 배열의 순회
  9. 배열의 정렬
  10. 배열의 필터링 및 변형
  11. 배열의 성능 최적화
  12. 결론
'Apple/Swift' 카테고리의 다른 글
  • [Swift] 고차함수(Higher-order function) 이해하기
  • [Swift] Implicitly Unwrapped Optional (암묵적 옵셔널 추출)과 Optional Chaining (옵셔널 체이닝)
  • [Swift] 초기화(Initializers) 알아보기 (6) - Failable Initalizers
  • [Swift] 초기화(Initializers) 알아보기 (5) - 요구 이니셜라이저
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (204) N
      • Apple (122) N
        • iOS (22)
        • visionOS (4)
        • Swift (66) N
        • UIKit (2)
        • SwiftUI (22)
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    변수
    오블완
    SWIFT
    ios
    Xcode
    디자인패턴
    옵셔널
    Optional
    프로퍼티 래퍼
    제어문
    Vision Pro
    swiftUI
    이니셜라이저
    Initializers
    운영체제
    combine
    클래스
    자바스크립트
    네트워크
    코딩테스트
    함수
    연산자
    visionOS
    프로세스
    비동기
    UIKit
    티스토리챌린지
    배열
    메서드
    스위프트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[Swift] 배열(Array)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.