itisjustK
코딩과 사람 사는 이야기
itisjustK
전체 방문자
오늘
어제
  • 분류 전체보기 (207)
    • 일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠.. (0)
    • Web (43)
      • html & css (9)
      • django & python (15)
      • java script (9)
    • iOS (51)
      • Swift (42)
      • SwiftUI (5)
    • CS (25)
      • 자료구조 (6)
      • 운영체제 (3)
      • 데이터베이스 (9)
      • 네트워크 (7)
    • PS (34)
      • 알고리즘 & 자료구조 (0)
    • Life (36)
    • Retrospective (15)
    • Book (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 생활코딩
  • nosql
  • 세그멘테이션
  • crud
  • CS
  • AppleDevloperAcademy
  • ios
  • POSTECH
  • 독립서점
  • 연결리스트
  • binding
  • 생활코딩 #이고잉 #HTML #코딩 #개발자
  • SWIFT
  • SwiftUI
  • 개발자
  • CoreData
  • 어플
  • 점주
  • mongodb
  • 킨디

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
itisjustK

코딩과 사람 사는 이야기

[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 06. 컬렉션 타입(Array, Dictionary, Set) (💎생각해보기)
iOS/Swift

[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 06. 컬렉션 타입(Array, Dictionary, Set) (💎생각해보기)

2021. 7. 15. 17:16

Array      [ ] 

Array : 멤버가 순서(인덱스)를 가진 리스트 형태의 컬렉션 타입. 인덱싱 활용 가능, 멤버 중복 가능

Array 생성하는 법

 

Array 선언하는 문법
var integers: Array<Int> = Array<Int>()
           //Int타입의 Array  빈 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에 멤버 추가 문법
리스트.append(추가할 멤버)

integers라는 Array의 멤버 데이터 타입을 Int라고 선언해줬기 때문에 Double타입인 100.1은 추가할 수 없다.

 

 

Array에 멤버 포함 여부 확인 문법
리스트.contains(확인할 멤버)
//'확인할 멤버'가 '리스트'에 있다면 true
//없다면 false

 

Array에 멤버 교체 문법 (replace)
리스트[n] = 교체할 멤버
// n은 리스트의 인덱스 번호. 'n번째 멤버'를 '교체할 멤버'로 대체하겠다

 

Array 멤버 삭제 문법
리스트.remove(at: n)	//n번째 멤버 삭제
리스트.removeLast()	//인덱스 제일 마지막 멤버 삭제
리스트.removeAll()	//전체 삭제

오른쪽은 삭제될 멤버

 

Array 멤버 수 확인 문법
리스트.count

 

let 으로 Array 설정

let으로 Array를 설정하면 나중에 바꿀 수 없다. (삭제나 추가 안됨)

 

 

 

Set      { }

Set : 순서가 없는 멤버들을 가진 집합. '수학의 집합'이라 생각하면 편함. 인덱싱 활용 불가, 멤버 중복 안됨

 

Set 선언 문법
var integerSet: Set<Int> = Set<Int>()	//integerSet은 Set 집합 이름

Set 선언 문법에는 축약형 없음. 오직 저 형태로만 Set 선언 가능

 

 

Set에 멤버 추가 문법
integerSet.insert(추가할 멤버)

Set은 멤버 중복이 안되기 때문에 10을 여러번 insert해도 한 번만 담긴다.

다른 말로 Set에선 그 값이 유일해야 한다.

 

 

Set 멤버 포함 여부 확인 문법
integerSet.contains(멤버)
//멤버가 있으면 true, 없으면 false

 

 

Set 멤버 삭제 문법
integerSet.remove(삭제할 값)
integerSet.removeFirst()	//첫번째 값 삭제

궁금증 하나 Set에서는 값의 순서가 없다고 했는데, removeFirst 활용의 의미가 무엇인지?

 

 

Set 멤버 개수 문법 
integerSet.count

count 뒤에 소괄호가 안붙는다!

 

 

Set의 활용

Set은 앞에서 말했듯 수학의 집합과 개념이 유사하다고 했다.

이를 활용하여 집합의 연산(합집합, 교집합, 차집합 등)을 활용할 수 있다.

 

 

  • Set 합집합 문법 
//집합1과 집합2의 합을 집합3이라 하자.

var 집합3: Set<데이터 타입> : 집합1.union(집합2)

 

*unionSet 오름차순으로 정렬 문법

//unionSet : 정렬없이 형성된 합집합
unionSet.sorted()

let sortedUnionSet: [Int] = unionSet.sorted() // sortedUnionSet이라는 이름으로 새로 선언해주기

오름차순으로 정렬한 집합을 새로운 이름으로 선언해준 것과 sorted()가 일회성으로 적용된 것의 차이를 느끼자

(+순서가 부여되니 { } 에서 [ ]로 바뀜)

 

 

  • Set 교집합 문법
//setA와 setB의 교집합 setC를 만들겠다.

var setC: Set<Int> = setA.intersection(setB)

문법은 합집합 문법과 동일하나 union대신 intersection을 쓴다는 것만 다르다.

 

 

  • Set 차집합 문법
//setA와 setB의 차집합 setC

var setC: Set<Int> = setA.subtracting(setB)

차집합 역시 문법 구조는 동일하나 subtracting을 쓴다.

 

 

 

 

Dictionary

Dictionary : '키:값'의 쌍으로 이루어진 컬렉션 타입. Array와 동일하게 인덱싱 활용 가능

 

Dictionary 선언 문법
//key가 string, value가 any인 빈 dictionary 생성

var dictionary: Dictionary<String, Any> = [String: Any]()

//동일 축약 표현
var dictionary: Dictionary <String, Any> = Dictionary<String, Any>()
var dictionary: Dictionary <String, Any> = [:]
var dictionary: [String: Any] = Dictionary>String. Any>()
var dictionary: [String: Any] = [String: Any]()
var dictionary: [String: Any] = [:]
var dictionary = [String: Any]()

 

 

Dictionary 멤버 추가 문법
//anyDictionary라는 빈 dictionary에 key, value 추가

anyDictionary["key"] = value	//string이면 ""붙임 int면 안붙임

 

 

Dictionary 멤버 변경 문법
anyDictionary[key] = newvalue
//그냥 값을 새로 부여해주면 됨

 

 

Dictionary 멤버 제거 문법
//2가지 방법 존재
// 1.removeValue 2.value값을 nil로 설정

anyDictionary.removeValue(forKey:"anotherKey")

anyDictionary["someKey"] = nil

 

 

Dictionary let으로 선언

let으로 빈 dictionary를 선언해주었기 때문에 값 추가가 안된다

 

 

 

생각해보기

영어 알파벳은 순서가 필요할 수도 있으니 Array

책의 제목과 저자는 key값과 value값이 있으므로 Dictionary

수강생 명부는 중복이 있으면 안되므로 Set

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

[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 08. 함수 고급  (0) 2021.07.18
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 07. 함수 기본  (0) 2021.07.18
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 05. Any, AnyObject, nil (💎생각해보기)  (0) 2021.07.14
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 04. 기본 데이터 타입  (0) 2021.07.13
[iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 03.상수와 변수  (0) 2021.07.13
    'iOS/Swift' 카테고리의 다른 글
    • [iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 08. 함수 고급
    • [iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 07. 함수 기본
    • [iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 05. Any, AnyObject, nil (💎생각해보기)
    • [iOS 프로그래밍을 위한 스위프트 기초] Ch1. 스위프트 기초 - 04. 기본 데이터 타입
    itisjustK
    itisjustK

    티스토리툴바