로컬에서는 잘 되는데 ☘️

Java : 배열 ↔️ 리스트 변환 (int형 배열 포함)

by youngjun._.

1. 배열 ➡️ 리스트

  • Arrays.asList()
  • Stream : Collectors.toList()

1-1. Arrays.asList()

String[] arr = { "A", "B", "C" };

// Shallow Copy
List<String> list = Arrays.asList(arr);

// Deep Copy (권장)
List<String> list = new ArrayList<>(Arrays.asList(arr));

Deep Copy : 기존 배열과 별개의 List를 생성하게 되어 추가/변경/삭제에 자유롭기 때문에 권장

1-2. Collectors.toList()

Deep Copy

String[] strArr = {"2", "3", "1"};

List<String> collect = Arrays.stream(strArr)
        .collect(Collectors.toList());

2. 리스트 ➡️ 배열

2-1. toArray()

인자로 넘겨주는 배열 size는 자동으로 조절  (크면 null 채워짐)

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");

String[] strArr = list.toArray(new String[0]);

3. 배열 ➡️ 리스트 (Primitive 타입)

  • For loop
  • Arrays.stream().boxed().collect()

3-1. For loop

int[] intArr = {3, 2, 1};

// int -> List
List<Integer> intList = new ArrayList<>();
for (int item : intArr) {
    intList.add(item);
}

3-2. Stream 활용

  • Arrays.stream().boxed().collect()
int[] intArr = {3, 2, 1};

// int -> List
List<Integer> intList = Arrays.stream(arr)
                            .boxed()
                            .collect(Collectors.toList());

boxed() 메소드는 Primitive Stream 값을 Wrapper Class로 바꿔준다.

4. 리스트 ➡️ 배열 (Primitive 타입)

4-1.Stream().mapToInt()

List<Integer> numlist = new ArrayList<>();
list.add(1);
list.add(2);

int[] numArray = numList.stream()
                    .mapToInt(i -> i)
                    .toArray();
  • mapToInt() 메서드가 IntStream(int 값의 시퀀스)을 반환

블로그의 정보

개발하는만두

youngjun._.

활동하기