JAVA

배열 ↔ 리스트 형변환 모음

깊은바다거북 2022. 9. 2. 20:56

int[] → Set<Integer>

: int[] nums = {1, 2, 3, 4, 5}가 있을 때,

Set<Integer> set = Arrays.stream(nums).boxed().collect(Collectors.toSet());
Set<Integer> set = IntStream.of(nums).boxed().collect(Collectors.toSet());

int[] → Integer[]

: int[] nums = {1, 2, 3, 4, 5}가 있을 때,

Integer[] boxed = IntStream.of(nums).boxed().toArray(Integer[]::new);
Integer[] boxed = Arrays.stream(nums).boxed().toArray(Integer[]::new);

int[] → HashSet<Integer>

: int[] nums = {1, 2, 3, 4, 5}가 있을 때,

HashSet<Integer> hashset = IntStream.of(nums).boxed().collect(Collectors.toCollection(HashSet::new));
HashSet<Integer> hashset = Arrays.stream(nums).boxed().collect(Collectors.toCollection(HashSet::new));

Integer[] → HashSet<Integer>

: Integer[] nums = {1, 2, 3, 4, 5}가 있을 때,

Set<Integer> set = new HashSet<>(Arrays.asList(nums));

int[] → List<Integer>

: int[] nums = {1, 2, 3, 4, 5}가 있을 때,

List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
  • Java 16+ 부터는:
List<Integer> list = Arrays.stream(nums).boxed().toList();

List<Integer> → int[]

: List<Integer> list = Arrays.asList(1, 2, 3, 4, 5) 가 있을 때,

int[] primitive = list.stream().maptoInt(Integer::intValue).toArray();
// Commons Collections(Apache)를 이용한 방법:
import org.apache.commons.lang3.ArrayUtils;
int[] primitive = ArrayUtils.toPrimitive(list.toArray(new Integer[0]));
// Guava API를 이용한 방법:
import com.google.common.primitives.Ints;
int[] primitive = Ints.toArray(list);