러스트에서 Vector의 중복 요소들을 모두 제거하는 방법에 대해서 알아보겠습니다.
1. dedup()를 이용한 방법
dedup()
는 벡터에서 연속적으로 동일한 값을 갖는 요소들을 제거합니다.
따라서, sort()
로 먼저 정렬하고 dedup()
으로 중복 요소들을 제거할 수 있습니다.
fn main() {
let mut v = vec![1, 2, 1, 2, 3, 4, 1, 5, 6, 5];
v.sort();
v.dedup();
println!("{:?}", v);
}
Output:
[1, 2, 3, 4, 5, 6]
2. HashSet을 이용한 방법
HashSet은 중복 요소 저장을 허용하지 않는 자료구조이기 때문에, 벡터를 HashSet으로 변경하면 중복 요소들이 모두 제거됩니다.
HashSet으로 변경하여 중복을 제거한 뒤에, 다시 Vector로 변경하면 중복이 제거된 Vector를 얻을 수 있습니다.
use std::collections::HashSet;
fn main() {
let mut v1 = vec![1, 2, 1, 2, 3, 4, 1, 5, 6, 5];
let v2: Vec<_> = v1.into_iter().collect::<HashSet<_>>().into_iter().collect();
println!("{:?}", v2);
}
Output:
[5, 2, 4, 1, 3, 6]
위 예제에서
into_iter()
를 사용하여 v1의 소유권을 가져왔기 때문에, 변환 후 v1을 사용할 수 없습니다. v1을 사용해야 한다면iter()
를 사용해야 합니다.
정렬된 벡터를 얻고 싶다면 v2를 mut으로 선언하고,
v2.sort()
로 정렬하면 됩니다.
Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환