[swift] Swift DeepDiff를 사용하여 배열에서 중복된 항목 찾기

배열에서 중복된 항목을 찾는 것은 종종 필요한 작업입니다. 이를 쉽게 수행하기 위해 Swift DeepDiff 라이브러리를 사용할 수 있습니다. DeepDiff는 두 개의 배열을 비교하여 변경된 항목을 식별하고, 중복된 항목을 찾는 데 사용할 수 있는 강력한 도구입니다.

DeepDiff 설치

DeepDiff를 사용하려면 먼저 프로젝트에 해당 라이브러리를 설치해야 합니다. CocoaPods를 사용하여 설치하는 경우, Podfile에 다음과 같은 항목을 추가하고 pod install 명령으로 라이브러리를 설치합니다.

pod 'DeepDiff'

사용 방법

중복된 항목을 찾기 위해서는 두 개의 배열을 비교해야 합니다. DeepDiff 라이브러리는 다음과 같은 4가지 비교 방법을 제공합니다.

  1. 차이점 찾기(diff): 두 배열 사이의 차이점을 찾습니다.
  2. 추가된 항목 찾기(insertions): 첫 번째 배열에는 없지만 두 번째 배열에만 있는 항목을 찾습니다.
  3. 삭제된 항목 찾기(deletions): 첫 번째 배열에만 있는 항목을 찾습니다.
  4. 변경된 항목 찾기(replacements): 두 배열에서 값이 변경된 항목을 찾습니다.

다음은 DeepDiff를 사용하여 배열에서 중복된 항목을 찾는 예제 코드입니다.

import DeepDiff

let array = [1, 2, 3, 4, 2, 5, 4, 6, 7, 8]
let diff = array.diff(array)

var duplicates: [Int] = []
for change in diff {
    if let insertion = change.insertion, Array(array[insertion]) == Array(array[insertion + 1]) {
        duplicates.append(array[insertion])
    }
}

print("Duplicates: \(duplicates)")

위의 코드에서 array는 중복된 항목을 찾을 배열입니다. diff를 사용하여 arrayarray를 비교합니다.

비교 결과를 순회하면서 insertion 변경 유형을 찾고, 해당 항목이 중복되었는지 확인합니다. 중복된 경우 해당 항목을 duplicates 배열에 추가합니다. 마지막으로 duplicates 배열을 출력합니다.

결론

Swift DeepDiff를 사용하면 배열에서 중복된 항목을 쉽게 찾을 수 있습니다. 이를 통해 중복을 제거하거나 중복된 항목에 대한 작업을 수행할 수 있습니다. DeepDiff는 강력하고 유용한 라이브러리이며, 배열의 변화를 추적하고 다양한 비교 작업을 수행하는 데 사용할 수 있습니다.

참조