우리의 가장 큰 목적은 답을 형식에 맞춰서 내보내는 것이다. 보통 Stream()객체를 감싸서 toArray(), toList()를 하기는 하나, 가장 기본적인 방법은 알고 위의 Stream() 객체를 이용하도록 하자. 가장 기본은 다음과 같이 for-loop를 돌면서 전반적으로 알맞는 객체 구조에 넣어주는 것이다.
[(Reference Type & Dynamic Array) → (Primitive Type & Static Array)]
//변환 (stream을 제대로 익혀보자)
int[] answer = new int[answerList.size()];
for(int i=0; i<answerList.size(); i++){
answer[i] = answerList.get(i);
}
혹여나 stream()으로 하는 방법이 기억나지 않는다면 위의 방법은 기억하고 있자.
<aside> 💡 1. Stream을 이용한 변환
</aside>
ArrayList.stream().mapToInt(i->i).toArray();
ArrayList에서 Array로 변환할때는 WrapperClass로 변환된다.
//Boxing, Unboxing 개념
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
//공식적으로 제공하는 방식 (arrayList to Array)
Integer[] intgerArray = intList.toArray(new Integer[intList.size()]);
//toArray하면 Intger[] WrapperClass(Rreference Type) array로 받아올수 밖에 없다.
//이것을 기본형 (Primitive Type) array로 변환시키기 위해서 Unboxing을 해줘야 한다.
참고 블로그 - Wrapper Class to Primitive type
[Conversion - Array to ArrayList, ArrayList to Array]
package Conversion;
import java.util.ArrayList;
import java.util.List;
public class ConversionArrayAndArrayList {
public static void main(String[] args) {
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
//size만큼 지정하고 for문돌리면서 넣기
Integer[] intgerArray = new Integer[intList.size()];
for(int i=0; i<intList.size(); i++) {
intgerArray[i] = intList.get(i);
System.out.println(intgerArray[i]);
}
//ArrayList.toArray 메소드 사용하기 (toArray(들어갈 array형식과 사이즈가 들어가야 한다))
Integer[] intArray = intList.toArray(new Integer[intList.size()]);
for(Integer integer: intArray) System.out.println(integer);
//Wrapper Class Array to Primitive Class Array
int[] intarrayHo = new int[intList.size()]; // new로 Heap영역에 메모리를 올릴때는 항상 array size정해줘야 한다
int size=0;
for(Integer integer: intArray) {
//intarrayHo[size] = (int) integer;
intarrayHo[size] = integer.intValue();
size++;
}
for(int in: intarrayHo) System.out.println(in);
}
}
블로그 - Array to ArrayList, ArrayList to Array
[Static array & Primitive Type → Dynamic Array & Reference Type]