S E P H ' S

[Java] Arrays.asList() 본문

Programing & Coding/JAVA

[Java] Arrays.asList()

yoseph0310 2022. 11. 7. 20:35

일반 배열을 ArrayList로 변환하는 메소드이다.


// # Code 1.

String[] arr = {"ABC", "DEF", "GHIK"};
List<String> strList = Arrays.asList(arr);

System.out.println(strList);
System.out.println(arr);

 

 

Code 1. 실행결과


Arrays.asList()는 Arrays의 정적 클래스인 ArrayList를 리턴한다.

java.util.ArrayList 클래스와는 다른 클래스이다.

단지 리턴 타입 클래스명이 ArrayList이고, Arrays 클래스의 inner class인 ArrayList를 리턴하는 것이다.

 

java.util.Arrays.ArrayList는 고정크기의 배열을 가진 리스트를 리턴한다. 즉, 크기가 변경되는 동작인

remove, removeAll, add 등의 연산이 지원되지 않는다.

 

그래서 이를 무시하고 asList를 저장한 List에 add 연산을 해보면 UnsupportedOperationException이 발생한다.

 

이를 피하기 위해서는 ArrayList로 wrapping 하면 해결된다.

반환하는 데이터와, 데이터의 타입을 잘 확인하고 사용해야 한다는 것을 느끼게 됐다.

 

// Code 2.

String[] arr = {"ABC", "DEF", "GHIK"};
List<String> strList = new ArrayList<>(Arrays.asList(arr));
strList.add("BCA");
System.out.println(strList);
System.out.println(arr);

Code 2. 실행결과

 

'Programing & Coding > JAVA' 카테고리의 다른 글

[JAVA] Java 프로그램의 실행  (0) 2023.02.08
[Java] StringBuilder  (0) 2022.12.12
[Java] 9. Overloading & Overriding  (0) 2022.01.18
[Java] 8. final keyword  (0) 2022.01.10
[Java] 7. Generic  (0) 2022.01.10