Java에서 ArrayList를 Set으로 변환

Mohammad Irfan 2023년10월12일
  1. Java에서 순진한 접근 방식을 사용하여 ArrayList를 HashSet으로 변환
  2. Java에서 생성자를 사용하여 ArrayList를 HashSet으로 변환
  3. Java 8 Stream API를 사용하여 ArrayList를 HashSet으로 변환
  4. Java의 Set.copyOf() 메소드를 사용하여 ArrayList를 HashSet으로 변환
  5. Java에서 Apache Commons Collection Library를 사용하여 ArrayList를 HashSet으로 변환
Java에서 ArrayList를 Set으로 변환

ArrayList는 데이터를 선형 순서로 저장하는 데 사용되는 List 인터페이스의 구현 클래스인 반면, set은 데이터를 저장하는 HashSet 클래스가 있는 인터페이스입니다. 이 둘의 주요 차이점은 HashSet이 중복 요소를 허용하지 않고 고유한 요소를 저장한다는 것입니다.

이 자습서에서는 ArrayList를 HashSet으로 변환하는 다양한 접근 방식을 소개합니다.

Java에서 순진한 접근 방식을 사용하여 ArrayList를 HashSet으로 변환

이것은 목록을 집합으로 변환하는 가장 기본적인 접근 방식입니다.

이 접근 방식에서는 먼저 빈 집합을 선언합니다. 그런 다음 목록을 반복하고 HashSet.add() 메서드를 사용하여 해당 요소를 세트에 하나씩 추가합니다. 루프가 종료되면 목록이 집합으로 변환됩니다.

아래 코드를 보십시오.

import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>();
    // apply for loop
    for (String ele : list) {
      set.add(ele);
    }
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

출력:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

위의 코드에서 일부 이름을 저장하는 목록을 만들었습니다. 또한 set이라는 빈 Set을 초기화합니다.

그런 다음 목록을 반복하고 요소를 추가하여 하나씩 설정합니다. 마지막으로 집합의 요소를 인쇄합니다. 목록에서 중복 요소가 어떻게 제거되는지 확인하십시오.

Java에서 생성자를 사용하여 ArrayList를 HashSet으로 변환

이 접근 방식은 모든 접근 방식 중 가장 간단합니다. 이 접근 방식에서는 HashSet 클래스의 생성자로 변환해야 하는 목록을 전달합니다.

이렇게 하면 이전 접근 방식에서 필요했던 for 루프가 필요하지 않습니다. 생성자는 모든 고유 요소를 포함하는 새 집합을 반환합니다.

아래 코드를 보십시오.

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

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = new HashSet<String>(list);

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

출력:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

위의 코드에서 일부 이름을 저장하는 목록을 만듭니다. 또한 set이라는 빈 Set을 초기화합니다.

목록을 HashMap의 생성자에 인수로 전달합니다. 마지막으로 집합의 요소를 인쇄합니다. 목록에서 중복 요소가 어떻게 제거되는지 확인하십시오.

Java 8 Stream API를 사용하여 ArrayList를 HashSet으로 변환

이 접근 방식에서는 Java 8 Stream API를 사용하여 ArrayList를 HashSet으로 변환했습니다. 먼저 목록을 스트림으로 변환했습니다. 그런 다음 collect 기능을 스트림에 적용합니다.

집합으로 변환하기 위해 collect 작업에서 Collectors.toSet() 함수를 사용하여 집합을 얻었습니다. 아래 코드를 보십시오.

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

public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set using stream
    Set<String> set = list.stream().collect(Collectors.toSet());

    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

출력:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

위의 코드에서 List.stream() 함수를 사용하여 목록을 스트림으로 변환했습니다. collect 작업을 스트림에 적용하고 Collectors.toSet() 메서드를 인수로 전달합니다.

그 결과 스트림이 집합으로 변환됩니다. 그런 다음 이 집합을 변수 집합에 저장합니다.

Java의 Set.copyOf() 메소드를 사용하여 ArrayList를 HashSet으로 변환

Java 10은 컬렉션을 인수로 사용하고 지정된 컬렉션의 요소를 포함하는 변경 불가능한 집합을 반환하는 Set.copyof() 메서드를 제공합니다. 이 접근 방식에서는 Set.copyOf() 메서드를 사용하여 ArrayList를 HashSet으로 변환합니다.

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> list =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> set = Set.copyOf(list);
    // display the set
    for (String ele : set) {
      System.out.println(ele);
    }
  }
}

출력:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

Java에서 Apache Commons Collection Library를 사용하여 ArrayList를 HashSet으로 변환

Apache Commons Collection 라이브러리로 작업하는 경우 대상 컬렉션 개체와 소스 컬렉션 개체의 두 가지 인수를 사용하는 CollectionUtils.addAll() 메서드를 사용합니다.

소스 컬렉션 개체의 값이 대상 컬렉션 개체에 복사되고 집합이 생성됩니다. 아래 코드를 보십시오.

이 코드는 Apache 공용 라이브러리의 종속성 코드를 사용합니다. 먼저 이 종속성을 Java 프로젝트에 추가하여 이 코드를 성공적으로 실행합니다.

<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.2.2</version>
</dependency>
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    // initialise a list
    List<String> sourcelist =
        Arrays.asList("Karan", "Rahul", "Jay", "Laxman", "Praful", "Kushagra", "Karan");
    // intialise a set
    Set<String> targetset = new HashSet<String>();
    // Adding elements
    CollectionUtils.addAll(targetset, sourcelist);
    // display the set
    for (String ele : targetset) {
      System.out.println(ele);
    }
  }
}

출력:

Rahul
Kushagra
Jay
Karan
Laxman
Praful

관련 문장 - Java ArrayList

관련 문장 - Java Set