SeouliteLab

[Java/자바] 배열에서 중복 제거하기 본문

프로그래밍

[Java/자바] 배열에서 중복 제거하기

Seoulite Lab 2024. 3. 8. 09:03

예제 1: HashSet을 활용한 중복 제거

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        // 중복이 포함된 배열
        Integer[] arr = {1, 2, 3, 3, 4, 5, 5, 6};
        
        // 배열을 HashSet으로 변환하여 중복 제거
        Set<Integer> set = new HashSet<>(Arrays.asList(arr));
        
        // 결과 출력
        System.out.println("중복 제거 후 배열: " + set);
    }
}

HashSet을 사용하여 중복 요소를 제거할 수 있습니다. HashSet은 중복을 허용하지 않는 특징을 가지고 있어 중복 요소를 제거할 때 유용합니다.

예제 2: Stream을 활용한 중복 제거

import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // 중복이 포함된 배열
        Integer[] arr = {1, 2, 3, 3, 4, 5, 5, 6};
        
        // 배열을 Stream으로 변환하여 중복 제거
        Integer[] distinctArr = Arrays.stream(arr).distinct().toArray(Integer[]::new);
        
        // 결과 출력
        System.out.println("중복 제거 후 배열: " + Arrays.toString(distinctArr));
    }
}

Stream을 사용하여 중복 요소를 제거할 수 있습니다. distinct() 메서드를 호출하여 중복을 제거한 후, toArray() 메서드를 사용하여 배열로 변환합니다.

예제 3: 직접 중복 제거 로직 구현

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        // 중복이 포함된 배열
        Integer[] arr = {1, 2, 3, 3, 4, 5, 5, 6};
        
        // 중복 제거를 위한 메서드 호출
        Integer[] distinctArr = removeDuplicates(arr);
        
        // 결과 출력
        System.out.println("중복 제거 후 배열: " + Arrays.toString(distinctArr));
    }
    
    // 중복 제거 메서드
    public static <T> T[] removeDuplicates(T[] arr) {
        return Arrays.stream(arr).distinct().toArray(size -> Arrays.copyOf(arr, size));
    }
}

직접 중복 제거 로직을 구현할 수도 있습니다. 여기서는 Stream과 Arrays.copyOf() 메서드를 사용하여 중복을 제거합니다.