어제 오늘 내일

[Java] List 중복 제거하는 2가지 방법 본문

IT/Java

[Java] List 중복 제거하는 2가지 방법

hi.anna 2021. 5. 20. 10:07

 

Java에서 List는 중복된 데이터를 가질 수 있습니다.

List에 중복된 데이터가 있을 경우, 중복된 데이터를 제거하는 2가지 방법을 소개합니다.

 

  1. Set 이용하기
  2. Stream 이용하기 - Java 8 이상

 

 

1. Set 이용하기

Set은 중복을 허용하지 않는 객체입니다.

따라서, List를 Set으로 변경하면 자연스럽게 중복이 제거됩니다.

 

  코드  

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

public class RemoveListDuplication {
    public static void main(String[] args) {

        // List 준비
        List<String> list = Arrays.asList("A", "B", "C", "A");

        // List를 Set으로 변경
        Set<String> set = new HashSet<String>(list);

        // Set을 List로 변경
        List<String> newList =new ArrayList<String>(set);

        // 결과 출력
        System.out.println(newList);

    }
}

  결과  

[A, B, C]

위코드는, 중복을 제거하기 위해서

List -> Set -> List 순서로 데이터를 변환하였습니다.

 

 

 

2. Stream 이용하기 - Java 8 이상

Java 8 이상에서는 Stream의 distinct() 를 이용해서 List의 중복을 제거할 수 있습니다.

 

  코드  

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

public class RemoveListDuplication {
    public static void main(String[] args) {

        // List 준비
        List<String> list = Arrays.asList("A", "B", "C", "A");

        // 중복 제거
        List<String> newList = list.stream().distinct().collect(Collectors.toList());

        // 결과 출력
        System.out.println(newList);

    }
}

  결과  

[A, B, C]

 


 

List의 중복을 제거하는 2가지 방법을 알아보았습니다.

 

 

반응형
Comments