Java

[Java] Arrays.asList

hrming 2022. 11. 15. 09:14

Arrays.asList

List<String> list = Arrays.asList(arr);

 

1. Arrays.asList()는 Arrays의 private 정적 클래스인 ArrayList (java.util.Arrays.ArrayList) 를 리턴한다.
2. java.util.ArrayList 클래스와는 다른 클래스이다.
3. set(), get(), contains() 메서드를 가지고 있지만 원소를 추가하는 메서드는 가지고 있지 않기 때문에 사이즈를 바꿀 수 없다.

List는 내부 구조가 배열로 만들어져 있다. 따라서 asList()를 사용해서 반환되는 List도 배열을 갖게 된다.
이때, asList()를 사용해서 List 객체를 만들 때 새로운 배열 객체를 만드는 것이 아니라, 원본 배열의 주소값을 가져오게 된다.
따라서 asList()를 사용해서 내용을 수정하면 원본 배열도 함께 바뀌게 되고 원본 배열을 수정하면 그 배열로 만들어뒀던 asList()를 이용한 List 내용도 바뀌게 된다. 이러한 이유 때문에 Arrays.asList()로 만든 List에 새로운 원소를 추가하거나 삭제 할 수 없다.

4. 따라서 Arrays.asList()는 배열의 내용을 수정하려고 할 때 List로 바꿔서 편리하게 사용하기 위함.

 


참고 /출처1 : https://m.blog.naver.com/roropoly1/221140156345

 

[JAVA] Arrays.asList()

일반 배열을 ArrayList로 변환한다. Arrays.asList()는 Arrays의 private 정적 클래스인 ArrayList...

blog.naver.com