Arrays.asList()
일반 배열을 ArrayList 구조로 바꾸는 메소드
List<String> list = Arrays.asList(arr);
이 방식을 사용하면 원본 배열의 주솟값을 가져옴
따라서 수정하면 원본의 데이터도 바뀌게 된다.
List자료구조는 set(),get(),contains()메소드를 가지고 있기에 이 메서드들은 사용 가능하지만
원소를 추가,삭제하는 메서드는 가지고 있지 않다.
따라서 새로운 원소를 추가하거나 삭제할 수 없다.(배열의 길이를 바꿀 수 없다.)
list.add("hi") //불가능
List.set(1,"hi") //가능. 2번째 인덱스 원소를 "hi" 로 수정
Array.asList()는 배열의 내용을 수정할 때 List로 바꿔 편리하게 사용하기 위함
new ArrayList<>()
진짜 ArrayList를 받기 위해서는
생성자를 불러와 새 인스턴스를 만들어주면 된다
List<String> list = new ArrayList<String>(Arrays.asList(arr));
ArrayList 생성자는 java.util.Arrays.ArrayList의 상위 클래스인 collection type도 받아들일 수 있음
이때는 원본과 다른 새 주솟값을 갖게 된다.
이제 데이터의 추가,삭제가 가능하다.
따라서, 배열의 크기가 변하면 안 되거나 변할 필요가 없을 때 Arrays.asList()를 사용하는 것이 좋다.
'Java' 카테고리의 다른 글
Java - split()/join() 배열<->문자열 변환 (1) | 2022.09.23 |
---|---|
Java - 많이 쓰는 메소드 정리1 (배열 복사) (0) | 2022.09.23 |
Java - 컬렉션 프레임워크 (0) | 2022.09.19 |
Java - 람다와 메서드 참조 (0) | 2022.09.18 |
Java-삼항연산자 (0) | 2022.09.17 |