프로그래밍/JAVA

[Java] Arrays.asList()

하와이블루 2023. 3. 11. 21:22
728x90

 

 

자바 Arrays.asList는 Array를 ArrayList처럼 사용할 수 있게 도와주는 클래스로

java.util.Arrays의 Arrays.asList는 보통 사용하던 java.util.ArrayList의 ArrayList와는 엄연히 다르다.

Arrays.asList는 remove(), add() 메소드를 제공하지 않고 set()get()contains() 를 제공하여 배열의 사이즈를 변경할 수 없다.

 

 

String[] str = {"son", "hwang", "lee"};
List<String> list = Arrays.asList(str);
System.out.println(list);

// [son, hwang, lee]

 

String[] str = {"son", "hwang", "lee"};
List<String> list = Arrays.asList(str);
list.add("park"); // UnsupportedOperationException
System.out.println(list);

 

String[] str = {"son", "hwang", "lee"};
List<String> list = Arrays.asList(str);
list.set(2, "park");
System.out.println(list);

// [son, hwang, park]

 

asList()를 사용하여 만들어진 List는 새로운 List 객체를 만드는 것이 아닌 원본 배열의 주소값 그대로를 가져와 List를 구성하게 된다.

따라서 List에 요소 추가가 되지 않는 것이다. 에러가 발생하지 않기위해 List 새 객체를 만들어야한다.

 

String[] str = {"son", "hwang", "lee"};
List<String> list = new ArrayList<>(Arrays.asList(str));
list.add("park");
System.out.println(list);

// [son, hwang, lee, park]

 

 

 

 

728x90