ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Arrays.asList()
    프로그래밍/JAVA 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

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

    댓글

Designed by Tistory.