1. 개요
이 짧은 기사에서 우리는 목록 과 집합 사이의 변환을 살펴볼 것 입니다.-Plain Java에서 시작하여 Guava와 Apache Commons Collections 라이브러리를 사용하고 마지막으로 Java 10을 사용합니다.
이 기사는 Baeldung에 대한 "Java – Back to Basic"시리즈의 일부입니다.
2. 목록 을 세트로 변환
2.1. Plain Java 사용
Java를 사용하여 목록 에서 집합 으로 변환하는 것으로 시작하겠습니다 .
public void givenUsingCoreJava_whenListConvertedToSet_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Set targetSet = new HashSet(sourceList); }
보시다시피 변환 프로세스는 형식이 안전하고 간단합니다. 각 컬렉션의 생성자는 다른 컬렉션을 소스로 받아들이 기 때문입니다.
2.2. W 구아바 번째
Guava를 사용하여 동일한 변환을 수행해 보겠습니다.
public void givenUsingGuava_whenListConvertedToSet_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); Set targetSet = Sets.newHashSet(sourceList); }
2.3. Apache Commons 컬렉션 사용
다음으로 Commons Collections API를 사용하여 List 와 Set 간에 변환 해 보겠습니다 .
public void givenUsingCommonsCollections_whenListConvertedToSet_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); Set targetSet = new HashSet(6); CollectionUtils.addAll(targetSet, sourceList); }
2.4. Java 10 사용
한 가지 추가 옵션은 Java 10에 도입 된 Set.copyOf 정적 팩토리 메소드 를 사용하는 것입니다 .
public void givenUsingJava10_whenListConvertedToSet_thenCorrect() { List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5); Set targetSet = Set.copyOf(sourceList); }
이 방법으로 생성 된 세트 는 수정할 수 없습니다.
3. 세트 를 목록으로 변환
3.1. Plain Java 사용
-의 지금 역변환하자 A로부터 세트 A와 목록 - 자바를 사용하여 :
public void givenUsingCoreJava_whenSetConvertedToList_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); List targetList = new ArrayList(sourceSet); }
3.2. 구아바와 함께
그리고 Guava 솔루션 :
public void givenUsingGuava_whenSetConvertedToList_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); List targetList = Lists.newArrayList(sourceSet); }
자바 접근 방식과 매우 유사하지만 중복 코드가 약간 적습니다.
3.3. Apache Commons 컬렉션 사용
이제 Set 과 List 사이에서 변환하는 Commons Collections 솔루션을 살펴 보겠습니다 .
public void givenUsingCommonsCollections_whenSetConvertedToList_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceSet); }
3.4. Java 10 사용
마지막으로 Java 10에 도입 된 List.copyOf 를 사용할 수 있습니다 .
public void givenUsingJava10_whenSetConvertedToList_thenCorrect() { Set sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5); List targetList = List.copyOf(sourceSet); }
결과 목록 은 수정할 수 없음을 명심해야합니다 .
4. 결론
이러한 모든 예제 및 코드 스 니펫의 구현은 GitHub에서 찾을 수 있습니다. 이것은 Maven 기반 프로젝트이므로 그대로 가져 와서 실행할 수 있어야합니다.