안녕하세요 공부하는 개발자 입니다.
오늘의 포스팅은 배열의 비교, 정렬, 검색에대하여 포스팅 하겠습니다.
🔔 배열의 비교
기본적으로 swift의 경우에는 대문자와 소문자를 철저하게 구분합니다.
그렇기 때문에
1
2
|
let a = ["A", "B", "C"]
let b = ["a", "b", "c"]
|
cs |
이런경우에는
a == b는 false가 나오고 a != b는 true가 나옵니다.
a.elementsEqual(b)
a == b와 같은 메서드 입니다.
하지만 대소문자를 비교하기 때문에 지금은 false이죠
이부분을 대소문자 비교를 하지 않도록 하려면
1
2
3
|
a.elementsEqual(b){ (lhs, rhs ) -> Bool in
return lhs.caseInsensitiveCompare(rhs) == .orderedSame
}
|
cs |
이런식으로 옵션을 내가 추가해줘야 한다.
🔔 배열의 검색
배열를 검색하기 위해서는 contains메서드를 사용합니다.
1
|
let nums = [1, 2, 3, 1, 4, 5, 2, 6, 7, 5, 0]
|
cs |
nums.contains(1)
1이 포함되어있는지 확인하는 메서드 입니다. contains()안에 찾고싶은 요소를 넣고 리턴값으로 Bool를 리턴해 줍니다.
만약 짝수를 검색하고 싶을 때는
1
2
3
|
nums.contains{ (n) -> Bool in
return n % 2 == 0
}
|
cs |
위에 대소문자 구별없이 비교했던 것 처럼 직접 만들어 주어야 합니다.
1
2
3
|
nums.first { (n) in
return n % 2 == 0
}
|
cs |
이 first메서드의 경우에는 조건에 맞는 요소들중 첫번째 요소를 리턴하는 메서드 입니다.
1
2
3
|
nums.firstIndex { (n) in
return n % 2 == 0
}
|
cs |
비슷한 메서드로 firstIndex가 있습니다.
조건에 맞는 요소들중 첫번째 요소의 Index를 리턴해주는 메서드 입니다.
물론 그냥
nums.firstIndex(of: 1)
nums.lastIndex(of: 1)
조건없이도 사용할 수 있습니다.
🔔 배열의 정렬
배열의 정령의 경우에는 sorted()와 sort()메서드를 이용합니다.
둘의 차이는 원본의 변경 유무 입니다.
sorted의 경우에는 원본을 회손하지 않으며 sort는 실제 배열을 변경합니다.
sort의 경우에는 원본 데이터를 변경하기 때문에 var로 선언을 해줘야 합니다.
nums.sorted()
기본적으로 정렬 입니다.
1
2
3
|
nums.sorted { (a, b) -> Bool in
return a > b
}
|
cs |
이런식으로 조건을 걸어 정렬할 수도 있습니다.
nums.sorted().reversed()
reversed메서드를 이용하면 정렬된 배열을 역으로 다시 정렬할 수 있습니다.
nums.swapAt(0, 1)
swapAt의 경우는 인자의 index끼리 자리를 변경해줍니다.
nums.shuffle()
shuffle의 경우에는 배열의 인자들을 전부 랜덤으로 섞어버립니다.
'Ios > Swift' 카테고리의 다른 글
[Swift] Swift Collection Set 스위프트 set (0) | 2022.06.30 |
---|---|
[Swift] Swift Collection Dictionary 스위프트 딕셔너리 (0) | 2022.06.29 |
[Swift] Swift Collection Array_2 스위프트 배열_2 (0) | 2022.06.26 |
[Swift] Swift Collection_Array 스위프트 배열 (0) | 2022.06.25 |
[Swift]String Option 문자의 옵션 모음 (0) | 2022.06.24 |