본문 바로가기

Java & Html

String array to arraylist

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

public class StringArrayToListDemo
{
public static void main(String[] args){
String[] arrStr = {"first", "second", "third", "fourth", "fifth"};
// HOW TO convert String array to arraylist

// 0. Primitive method
// 단순 : 리스트에 String 자료 추가.
List list0 = new ArrayList();
for(int i=0, total=arrStr.length; i < total; i++){
list0.add(arrStr[i]);
}
printList(list0);

/**
* 1. java.util.Arrays.asList(array[])
*
* 효율적이다 : 배열내용을 copy할 필요가 없으므로.
* 여기서 list는 배열에 대한 view개념 또는 wrapper개념. list의 요소를 변경하면
* 실제 배열의 내용도 변경이 된다. 주의) 이 리스트는 고정된 사이즈이다. 그러므로
* 새로운 요소를 추가하면 UnsupportedOperationException 발생.
*/
List list = Arrays.asList(arrStr);
list.add("extra"); // exception
printList(list);
/**
* 2. new ArrayList(Arrays.asList(array[])
*
* 배열의 내용을 복사하여 새로운 ArrayList에 저장함.당연히 복사된 값은
* 배열과 독립적이다. 그러므로, 추가 수정 삭제가 가능.
*/
List list2 = new ArrayList(Arrays.asList(arrStr));
printList(list2);

/**
* 3. java.util.Collections.addAll(collection, array)
*
* 방법 2와 동일.
*
* [결론]
* 만약 추가 삭제가 필요없는 리스트라면 방법1(오직 읽기전용)을 사용하고, 다른 경우에는
* 방법2 또는 3을 사용해라.
*/
List list3 = new ArrayList();
Collections.addAll(list3, arrStr);
printList(list3);
}

public static void printList(List list){
for(int i=0, total=list.size(); i<total; i++){
System.out.println(list.get(i));
}
System.out.println();
}