개발자/JAVA 문법 정리

[Java] List를 배열로 변환하는 방법

푸루닉 2022. 11. 27. 21:59

프로그래머스 문제를 풀다보면 매우 많은 배열 문제를 마주친다.

주로 배열로 반환을 하라고 하는데, 배열로 풀기에 불편한 점이 아주 많다.

(배열의 길이가 답마다 달라질때)

이럴 경우 list를 이용하여 문제를 푼 후 배열로 변환하는 것이 가장 효과적이었는데

배열로 변환하는 방법은 2가지가 존재한다.

 

	static class Solution {
	    public int[] solution(int n) {
	    	List<Integer> answer = new ArrayList<Integer>();
	    	for(int i=0; i <= n; i++) {
	    		if(i % 2 != 0) {
	    		answer.add(i);
	    		}
	    	}
	    	// 전통적인 방법의 list -> array 변환
//	    	int[] answer = new int[list.size()];
//	    	for(int i =0; i < list.size(); i++) {
//	    		answer[i] = list.get(i);
//	    	}
	    	// stream API (JAVA8 이상)
	        return answer.stream().mapToInt(a -> a).toArray();
	    }
	}

}

1. 전통적인 방법

  • 배열의 길이 = list.size()
  • for문을 이용하여 배열안에 값 삽입

2. Stream API 사용

  • 배열이름.stream().mapTo(자료형)(변수 - > 변수(앞과동일)).toArray();
    • 변수의 경우 아무 이름 사용가능 x -> x , a -> a