프로그래밍을 하다보면 데이터 자료구조를
변환해야 할 때가 있다. 오늘 포스팅은
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 에서는 좀더 간단하게 표현 할 수 도 있다.
따라서, 알아두면 유용하게 쓰일 것이다.
'Java' 카테고리의 다른 글
JAVA - UpCasting(업캐스팅) (9) | 2016.06.07 |
---|---|
JAVA - Casting(캐스팅) (0) | 2016.05.26 |
JAVA BufferedReader readLine에 관하여. (2) | 2016.04.09 |
Java foreach문(향상된 for문) (0) | 2016.03.30 |
JAVA Static이란? (2) | 2016.03.29 |
포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.