[Java] new ArrayList<>() & Arrays.asList()

Kwon·2024년 1월 14일
0

Java

목록 보기
14/15

new ArrayList<>() & Arrays.asList()

return type

  • new ArrayLIst<>()와 Arrays.asList()는 다른 클래스
import java.util.ArrayList;	// new ArrayList<>()
import java.util.Arrays;	// Arrays.asList()
  • new ArrayList<>()는 ArrayList를 Array.asList()는 Arrays의 정적 클래스인 ArrayList를 리턴
// Arrays.class
@SafeVarargs
public static <T> List<T> asList(T... a) {
    return new Arrays.ArrayList(a);
}

원소의 추가/삭제 기능 여부

  • Array.asList()는 javadoc에 밑의 알림이 써져 있음

Returns a fixed-size list backed by the specified array.
특정한 배열에 의해 백업된 고정 크기 List로 반환.

  • 말 그대로 Arrays.asList() 는 고정된 List
  • 그러나 변경하는 방법도 있음
String[] str = {"a", "b", "c"};
List<String> list = Arrays.asList(str);

1. set()

list.set(1, "d"); // ["a", "d", "c"]
  • set()을 사용

2. String[] str 배열 변경

  • Arrays.asList() 는 String[] str 을 백업할 때 주소 값을 가져옴
  • 따라서 String[] str 이 변경되면 list도 변경 (new ArrayList()<> 사용하면 새로운 주소 값 할당)
  • 원소 추가 및 삭제를 하고 싶으면 아래의 코드 사용
List<String> arrayList = new ArrayList<>(Arrays.asList(list));

etc

// ArrayList.class 생성자
public ArrayList(Collection<? extends E> c) {
    ...
}
  • ArrayList 생성자는 java.util.Arrays.ArrayList의 상위 클래스인 Collection type도 받아들일 수 있음

사용 용도

new ArrayList<>()

  • 컬렉션 생성 시, 새로운 주소 값으로 할당하기 위한 용도

Arrays.asList()

  • 요소의 개수가 제한되어 사용되는 경우

참고

링크텍스트

profile
📲 @bu_kwon_2 / 💻 dnu05043.log / ⌨ Back-end / 🦁 LikeLion

0개의 댓글