Java에서 목록과 집합 간 변환

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를 사용하여 ListSet 간에 변환 해 보겠습니다 .

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 컬렉션 사용

이제 SetList 사이에서 변환하는 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 기반 프로젝트이므로 그대로 가져 와서 실행할 수 있어야합니다.