프로그래밍/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