프로그래밍을 하다보면 데이터 자료구조를
변환해야 할 때가 있다. 오늘 포스팅은
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] (조금 더 정확한)실행시간 확인, 측정하기(timer) (0) | 2016.11.18 |
---|---|
java 디자인패턴 (0) | 2016.11.11 |
리플렉션 (0) | 2016.10.22 |
[Java] 문자열(String) : 문자열비교하기 ( equals(), equalsIgnoreCase(), compareTo(), compareToIgnoreCase() .. ) (0) | 2016.10.21 |
자바 JAVA ArrayList Sorting (간단 정리) (0) | 2016.10.21 |
댓글