배열을 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 |