언어/JAVA

JAVA - ArrayList에서 배열로, 배열에서 ArrayList로

벨포트조던 2016. 11. 8.
반응형

프로그래밍을 하다보면 데이터 자료구조를


변환해야 할 때가 있다. 오늘 포스팅은


ArrayList or List <-> 배열(Array)로 변환하는걸 


다루어본다.



중요한건 자료구조를 바꾸는 것이지 자료형은 일치해야 한다는것이다.


아래의 예시는 가장 많이 쓰이는 String 클래스 자료형을 이용한 변환 예제이다.



1. List -> Array(배열)


ex ) for문.


ArrayList<String> arrayList = new ArrayList<>();


arrayList.add("Test1");

arrayList.add("Test2");

arrayList.add("Test3");


String[] array = new String[arrayList.size()];

int size=0;

for(String temp : arrayList){

  array[size++] = temp;

}




윗 for문 방식은 arrayList (리스트) 데이터를 for문을 통해 순서데로 String 배열에 넣는다.


아래의 방식은 List에서 제공하는 메서드를 이용한 방식이다.



ex ) List에서 제공하는 메서드 사용.



ArrayList<String> arrayList = new ArrayList<>();


arrayList.add("Test1");

arrayList.add("Test2");

arrayList.add("Test3");


String[] array = arrayList.toArray(new String[arrayList.size()]);




2. Array(배열) -> List


ex ) for문



String[] array = new String[3];


array[0] = "Test1";

array[1] = "Test2";

array[2] = "Test3";


ArrayList<String> arrayList = new ArrayList<>();

for(String temp : array){

  arrayList.add(temp);

}




1번의 for문 예시와 같은 원리이다. 아래의 방식은 Arrays에서 제공하는 메서드를 이용한다.

.

ex )Arrays 메서드 사용,


String[] array = new String[3];


array[0] = "Test1";

array[1] = "Test2";

array[2] = "Test3";


ArrayList<String> arrayList = new ArrayList<>(Arrays.asList(array));




예시는 String으로 했지만, 모든 자료형이 가능하다. 중요한건 바꿀 자료구조끼리 자로형이 같아야한다.


원리는 for문이나 변환을 위해 제공되는 메서드나 똑같다.


하지만, 제공되는 메서드를 사용할시 코드를 간편하게 작성할 수 있는 장점이 있고, 더군다나


JAVA8 에서는 좀더 간단하게 표현 할 수 도 있다.



따라서, 알아두면 유용하게 쓰일 것이다.



반응형

댓글