본문 바로가기
BOOKS/수월한 Java

List에 담긴 정보를 배열로 변환하기

by IT여행자 2022. 11. 27.
728x90

안녕하세요 IT여행자입니다.

 

배열은 여러 가지의 장단점을 갖고 있는 데이터 자료 구조중 하나입니다. 자바의 List Collection은 배열이 갖고 있는 단점들을 해결할 수 있는 좋은 대안입니다. 그러나 가끔 List에 담긴 정보들을 배열로 변환해서 처리할 때가 있습니다. 방법은 간단하지만 배열로 바꾸는 구조가 일반적이지 않습니다.

 

먼저 레퍼런에 언급된 구조를 보면 아래와 같습니다.

 

Object[] obj List.toArray()

 

즉, List에 담긴 내용을 Object 타입의 배열로 반환하는 매서드명이 toArray()입니다.  그런데 toArray 메서드에는 아래와 같이 중복 정의된 메서드가 있습니다.

 

T[] obj List.toArray(T[] t)

 

매개변수 T[] t 의 타입의 데이터를 List에서 가져와 배열로 변환하여 T [] obj에 대입하겠다는 의미입니다.

 

List<String> list = ...

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

 

list에서 String 타입의 배열로 데이터를 가져와  target에게 대입하겠다. 이 정도로 해석해 보면 될 것 같습니다.

 

List<Vo> list = ...

Vo[] target = list.toArray(new Vo[0]);

 

이 역시, 'list에서 Vo 타입의 배열로 데이터를 가져와 target에 대입하겠다' 입니다.

 

이때  주의할 사항은 toArray() 메서드의 매개변수로 전달된 배열은 크기가 0이라도 지정되어 있어야 합니다.

 

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