>  기사  >  Java  >  Java 어레이의 중복 제거를 위한 5가지 실용적인 방법에 대한 심층 분석

Java 어레이의 중복 제거를 위한 5가지 실용적인 방법에 대한 심층 분석

WBOY
WBOY원래의
2023-12-23 09:21:371534검색

Java 어레이의 중복 제거를 위한 5가지 실용적인 방법에 대한 심층 분석

Java 배열 중복 제거의 다섯 가지 실용적인 방법에 대한 심층 분석

Java에서 배열 처리는 매우 일반적인 작업입니다. 어레이 중복제거는 실제 개발에서 자주 접하게 되는 문제입니다. 이 기사에서는 Java 배열 중복 제거를 위한 다섯 가지 실용적인 방법에 대한 심층 분석을 제공하고 구체적인 코드 예제를 제공합니다.

1. HashSet을 사용하여 중복 제거
HashSet은 자동 중복 제거 기능이 있는 Java의 모음입니다. HashSet의 특성을 사용하여 배열의 요소를 HashSet에 추가하여 중복 제거 효과를 얻을 수 있습니다.

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

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        HashSet<Integer> set = new HashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

2. LinkedHashSet을 사용하여 중복 제거
LinkedHashSet은 HashSet의 하위 클래스로 중복 제거 기능 외에도 삽입 순서를 유지할 수 있습니다. 원래 순서를 유지하고 중복 요소를 제거해야 하는 경우 LinkedHashSet을 사용할 수 있습니다.

import java.util.LinkedHashSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

3. TreeSet을 사용하여 중복 제거
TreeSet은 기본적으로 요소를 자연스럽게 정렬하는 정렬된 집합입니다. TreeSet의 중복 제거 기능을 사용하면 배열의 요소를 TreeSet에 추가한 다음 TreeSet를 배열로 변환하여 중복 제거를 달성할 수 있습니다.

import java.util.TreeSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        TreeSet<Integer> set = new TreeSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

4. Stream API를 사용하여 중복 제거
Stream API는 스트리밍 작업 방법을 제공하는 Java 8에 도입된 새로운 API입니다. Stream의 독특한 방식과 결합하여 중복된 배열을 쉽게 제거할 수 있습니다.

import java.util.Arrays;
import java.util.stream.IntStream;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int[] result = IntStream.of(array).distinct().toArray();
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

5. 이중 루프를 사용하여 중복 제거
마지막 방법은 이중 루프를 사용하여 배열을 순회하여 중복 요소를 표시하고 제거하는 것입니다.

import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int length = array.length;
        for(int i=0;i<length-1;i++){
            if(array[i]!=-1){
                for(int j=i+1;j<length;j++){
                    if(array[j]==array[i]){
                        array[j] = -1; // 标记为重复元素
                    }
                }
            }
        }
        int[] result = new int[length];
        int index = 0;
        for(int i=0;i<length;i++){
            if(array[i]!=-1){
                result[index++] = array[i];
            }
        }
        return Arrays.copyOf(result, index);
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

위의 소개를 통해 Java 배열 중복 제거의 5가지 실용적인 방법을 자세히 설명하고 구체적인 코드 예제를 제공했습니다. 실제 상황과 요구 사항에 따라 어레이 중복 제거 문제를 해결하는 데 적합한 방법을 선택할 수 있습니다. 이 글이 실제 개발에 도움이 되길 바랍니다!

위 내용은 Java 어레이의 중복 제거를 위한 5가지 실용적인 방법에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.