Set, List, Array 간의 변환하는 예제를 소개합니다.
- Set를 List로, List를 Set로 변환
- List를 Array로, Array를 List로 변환
- Set를 Array로, Array를 Set로 변환
또한, 구글의 자바 라이브러리인 Guava를 이용한 예제도 함께 소개합니다.
Gradle project에서 Guava를 사용하려면 build.gradle
의 dependencies에 다음과 같이 정의하면 됩니다.
implementation("com.google.guava:guava:28.2-jre")
Android 프로젝트에서는 다음과 같이 정의합니다.
implementation("com.google.guava:guava:28.2-android")
List를 Set로 변환
Set를 생성할 때 인자로 List를 전달하면 됩니다.
List<Integer> sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Set<Integer> targetSet = new HashSet<>(sourceList);
List를 Set로 변환 (Guava)
Guava는 Lists, Sets라는 Util 클래스를 제공합니다. 이것을 이용하면 간단한 코드로 List를 생성하고 Set로 변환할 수 있습니다.
List<Integer> sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
Set<Integer> targetSet = Sets.newHashSet(sourceList);
Set를 List로 변환
List를 생성할 때 인자로 Set를 전달하면 됩니다.
Set<Integer> sourceSet = new HashSet<>(Arrays.asList(0, 1, 2, 3, 4, 5));
List<Integer> targetList = new ArrayList<>(sourceSet);
Set를 List로 변환 (Guava)
Guava의 Lists, Sets를 이용하면 쉽게 생성 및 변환이 가능합니다.
Set<Integer> sourceSet = Sets.newHashSet(0, 1, 2, 3, 4, 5);
List<Integer> targetList = Lists.newArrayList(sourceSet);
Array를 Set로 변환
Stream을 이용하면 Array를 Set로 변환할 수 있습니다.
Integer[] array = {1, 2, 3};
Set<Integer> set = Arrays.stream(array).collect(Collectors.toSet());
System.out.println("Set: " + set);
// Set: [1, 2, 3]
Set를 Array로 변환
Set.toArray()
를 이용하면 Set를 Array로 쉽게 변환할 수 있습니다.
Set<Integer> set = Sets.newHashSet(1, 2, 3);
Integer[] array = new Integer[set.size()];
set.toArray(array);
System.out.println("Array: " + Arrays.toString(array));
// Array: [1, 2, 3]
Array를 List로 변환
Stream을 이용하면 Array를 List로 변환할 수 있습니다.
Integer[] array = {1, 2, 3};
List<Integer> list = Arrays.stream(array).collect(Collectors.toList());
List를 Array로 변환
List.toArray()
를 이용하면 List를 Array로 쉽게 변환할 수 있습니다.
List<Integer> list = Arrays.asList(1, 2, 3);
Integer[] array = new Integer[list.size()];
list.toArray(array);
참고
Recommended Posts:
- Java - 간단한 HashTable 구현
- Java - 제곱근(root) 계산, Math.sqrt()
- Java - 문자열(String)을 비교하는 방법 (==, equals, compare)
- Java - 대소문자 변환 & 구분없이 비교 (toUpperCase, toLowerCase, equalsIgnoreCase)
- Java - System.identityHashCode()와 hashCode()의 차이점
- Java - 거듭제곱 계산, Math.pow()
- Java - Random number(난수) 생성하는 방법
- Java - 문자열(String) 길이 계산
- Java - Thread 생성, 실행, 정지하는 방법
- Java - 배열 정렬(Sorting) (오름차순, 내림차순)
- Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개
- Java - 특정 디렉토리의 파일 리스트 탐색 및 출력하는 방법
- Java - 두개의 List를 하나로 합치는 방법