본문 바로가기
Java

[Java] 배열 내 요소 중복여부 체크

by jn4624 2022. 4. 26.
반응형

1. Set

public static void main(String[] args) {
    List<Integer> list = Arrays.asList(1,2,3,4,4,5,5,6);

    Set<Integer> set = new HashSet<Integer>(list);

    System.out.println(list.size());
    System.out.println(set.size());

    if( list.size() != set.size() ) {
        System.out.println("배열 내 중복 요소 존재");
    }
}

Set은 중복을 허용하지 않는 자료구조이다.

리스트를 Set으로 변환한 후 두 객체의 사이즈를 비교하여 사이즈가 일치하지 않는다면 리스트 내 중복 요소가 존재하고 있는 것입니다.

 

2. Stream.distinct()

public static void main(String[] args) {
    List<Integer> list = Arrays.asList(1,2,3,4,4,5,5,6);

    System.out.println(list.size());
    System.out.println(list.stream().distinct().count());

    if( list.size() != list.stream().distinct().count() ) {
        System.out.println("배열 내 중복 요소 존재");
    }
}

Stream.distinct()는 배열 내 중복 요소를 제거합니다.

Stream.count()는 Stream의 사이즈를 리턴합니다.

따라서 Stream.distinct().count()는 배열 내 중복 요소가 제거된 사이즈를 리턴하기 때문에 두 객체의 사이즈를 비교하여 사이즈가 일치하지 않는다면 리스트 내 중복 요소가 존재하고 있는 것입니다.

 

3. 중첩 반복문

public static void main(String[] args) {
    List<Integer> list = Arrays.asList(1,2,3,4,4,5,5,6);

    for( int i=0; i<list.size(); i++ ) {
        for( int j=0; j<i; j++ ) {
            if( list.get(i) == list.get(j) ) {
                System.out.println("배열 내 중복 요소 존재");
                return;
            }
        }
    }
}

이중 For문을 이용하여 배열의 중복 요소가 존재하고 있는지를 확인합니다.

 

 

🙏 참조 ::

반응형