Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 n개간격의원소들 // toArray()

외계나무 2023. 12. 12. 09:43

프로그래머스 - level 0 n개 간격의 원소들

import java.util.*;

class Solution {
    public int[] solution(int[] num_list, int n) {
        List<Integer> answer = new ArrayList<>();
        for(int i=0; i<num_list.length; i+=n) {
            answer.add(num_list[i]);
        }
        return answer.stream().mapToInt(Integer::intValue).toArray(); 
    }
}

 

 

 

연관 게시물 >> 프로그래머스 - L0 마지막두원소 // Array ↔ List

list.toArray()

List<String> stringList = new ArrayList<String>();
stringList.add("A");
stringList.add("B");
stringList.add("C");

String[] stringArray = stringList.toArray(new String[0]);

: List → Array 변환 메서드

예제에서 String 배열 인스턴스가 파라미터로 넘어가는데, size를 '0'으로 명시함. 왜?

  1. List를 toArray 메서드에 파라미터로 넘어가는 배열객체의 size만큼의 배열로 전환한다.
  2. 단, 해당 List size가 인자로 넘어가는 배열객체의 size보다 클때, 해당 List size로 배열이 만들어진다.
  3. 반대로 해당 List size가 인자로 넘어가는 배열객체의 size보다 작을때는, 인자로 넘어가는 배열객체의 size로 배열이 만들어진다.

여기서 위의 예제에서의 stringArray의 크기는 '3' 이다. 인자로 넘어가는 배열의 size가 '0'이므로, 원래 List size인 3 크기로 배열이 만들어짐. == List size 대로 배열의 크기를 맞추기 위해 배열객체의 size 자리에 0을 넣는 것.

참고 : Hong's Store House - Blogger