-
[Java] Arrays.asList()프로그래밍/JAVA 2023. 3. 11. 21:22728x90
자바 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'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] Optional<T> (0) 2023.03.12 [Java] 스트림(Stream) (0) 2023.03.11 [Java] Selenium(셀레니움) (0) 2022.08.18 [Java] 크롤링(Crawling) (0) 2022.08.17 [Java] LocalDateTime (0) 2022.08.16