본문 바로가기

Web/JAVA

[단일요소배열] Collections.singletonList 와 Arrays.asList

728x90

 

https://prohannah.tistory.com/85

 

Java 단일 요소의 배열 Collections.singletonList vs Arrays.asList

나의 개발 친구 intelliJ가 친절하게 알려주었다. 단일 요소의 배열에는 asList() 대신 singletonList()를 사용해달라고. intelliJ가 괘 이러한 가이드를 주었는지 IntelliJ의 설명을 읽어 보자. [요약] 메모리

prohannah.tistory.com

 

 

메모리 절약을 위해서 empty인지 아닌지를 체크하기 위해서는 Collections.singletonList 를 사용하는게 좋다.

 

Collections.singletonList()

  • 변경여부 : immutable (불변)
  • 사이즈 : size가 1로 고정됨(지정된 단일 객체를 가르키는 주소값을 가지기 때문)
  • 값 및 구조적 변경 시 UnsupportedOperationException 발생한다

 

 

Arrays.asList()

  • 변경여부 : 값 변경 가능(set메소드가 허용)
  • 사이즈 : 소유한 배열의 고정된 사이즈의 목록을 반환함
  • 구조적 변경 시 UnsupportedOperationException 발생(ex 요소 추가, 삭제)
  • ArrayList(AbstractList를 상속받은 중첩클래스)의 인스턴스를 반환함
    • 해당 클래스는 set, indexOf, forEach, replaceAll 메소드를 구현하여 제공함
    • 하지만 add 메소드 호출 시에는 AbstractList의 메소드를 호출하여 UnsupportedOperationException 반환

 

728x90

'Web > JAVA' 카테고리의 다른 글

[Generics] 제네릭 알아보기  (0) 2023.11.29
[비교] Object.equals() 와 equals()  (1) 2023.11.26
SpringTokenizer  (0) 2023.10.19
데이터 구조  (1) 2023.10.19
[Java Stream] skip() vs limit()  (0) 2023.04.23