Rust - 2개의 배열이 같은지 비교 (==, equals)

러스트에서 두개의 Array가 서로 같은지 비교하는 방법을 소개합니다.

1. == 연산자를 이용한 방법

==는 두개의 Array가 같으면 true를 리턴하고, 다르면 false를 리턴합니다.

  • 요소의 값은 모두 동일하지만 순서만 달라도 다른 배열로 인식하여 false를 리턴
fn main() {
    let arr1 = [1, 2, 3, 4, 5];
    let arr2 = [1, 2, 3, 5, 4];
    let arr3 = [1, 2, 3, 4, 5];

    if arr1 == arr2 {
        println!("arr1 and arr2 are equal")
    }
    if arr1 == arr3 {
        println!("arr1 and arr3 are equal")
    }
}

Output:

arr1 and arr3 are equal

정렬 후 비교

sort()로 정렬 후 비교하면, 값은 같지만 요소의 순서가 다른 경우는 고려하지 않아도 됩니다. 즉, 요소의 순서는 무시하고 요소의 값만 같은지만 비교하게 됩니다.

fn main() {
    let mut arr1 = [1, 2, 3, 4, 5];
    let mut arr2 = [1, 2, 3, 5, 4];
    let mut arr3 = [1, 2, 3, 4, 5];

    arr1.sort();
    arr2.sort();
    arr3.sort();

    if arr1 == arr2 {
        println!("arr1 and arr2 are equal")
    }
    if arr1 == arr3 {
        println!("arr1 and arr3 are equal")
    }
}

Output:

arr1 and arr2 are equal
arr1 and arr3 are equal

2. eq()를 이용한 방법

arr1.eq(&arr2)로 두개의 배열이 같은지 비교할 수 있습니다. 같으면 true, 다르면 false를 리턴합니다.

fn main() {
    let arr1 = [1, 2, 3, 4, 5];
    let arr2 = [1, 2, 3, 5, 4];
    let arr3 = [1, 2, 3, 4, 5];

    if arr1.eq(&arr2) {
        println!("arr1 and arr2 are equal")
    }
    if arr1.eq(&arr3) {
        println!("arr1 and arr3 are equal")
    }
}

Output:

arr1 and arr3 are equal

3. for문으로 직접 비교

아래와 같이 for문으로 두개의 배열을 순회하면서 두개의 배열이 같은지 비교할 수 있습니다.

fn main() {
    let arr1 = [1, 2, 3, 4, 5];
    let arr2 = [1, 2, 3, 5, 4];

    let mut equal = true;
    for i in 0..arr1.len() {
        if arr1[i] != arr2[i] {
            equal = false;
            break;
        }
    }
    println!("arr1 and arr2 are equal ? {}", equal);
}

Output:

arr1 and arr2 are equal ? false
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha