Java

[Java] 배열을 ArrayList로 변환

📝 작성 : 2020.06.30  ⏱ 수정 : 
728x90

배열을 ArrayList로 변환 하는 방법을 알아보고 그 반대의 경우도 알아보겠습니다.

배열 => ArrayList


```java public static void main(String[] args) { String[] arr = {"The", "URL", "of", "my", "blog", "is", "https://dhlee.dev"};
List<String> list1 = java.util.Arrays.asList(arr);
System.out.println(list1);

List<String> list2 = new ArrayList<>(Arrays.asList(arr));
System.out.println(list2);

List<String> list3 = new ArrayList<>();
Collections.addAll(list3, arr);
System.out.println(list3);

List<String> list4 = new ArrayList<>();
for (String str : arr) {
    list4.add(str);
}
System.out.println(list4);

}

<br/>
결과
<br/>
```java
[The, URL, of, my, blog, is, https://dhlee.dev]
[The, URL, of, my, blog, is, https://dhlee.dev]
[The, URL, of, my, blog, is, https://dhlee.dev]
[The, URL, of, my, blog, is, https://dhlee.dev] 

잘 생성됩니다. 이제 각 리스트에 `.add("a")`로 값을 추가해 주겠습니다. 실행하면 `list1`에서 `java.lang.UnsupportedOperationException`가 발생합니다.
따라서 배열을 ArrayList로 변환할 때 주의해서 변환해야겠습니다.

ArrayList => 배열

public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");

    String[] arr1 = list.toArray(new String[list.size()]);
    for (int i = 0; i < arr1.length; i++) {
        System.out.print(arr1[i] + " ");
    }
    System.out.println();

    String[] arr2 = new String[list.size()];
    int cursor = 0;
    for (String str : list) {
        arr2[cursor++] = str;
    }
    for (int i = 0; i < arr2.length; i++) {
        System.out.print(arr2[i] + " ");
    }
}

결과
```java a b c a b c ```
반응형

'Java' 카테고리의 다른 글

[Java]Immutable Object(불변객체)  (0) 2020.07.03
[Java] String = ""; vs new String("");  (0) 2020.07.01
[Java] 자바 날짜, 시간 API의 형변환 방법  (0) 2020.06.29
[Java] LocalDateTime  (0) 2020.06.28
[Java] 배열을 복사하는 방법  (0) 2020.06.17