[JAVA] Collections.emptyList() 와 Lists.newArrayList()

2023. 8. 11. 13:11·스터디/JAVA
728x90

null을 반환하는 것은 위험하니 빈 empty List를 반환하는게 안전합니다.

empty List를 반환하기위해 사용할 수 있는 코드는 아래와 같이 두 가지 선택이있는데요,

Collections의 emptyList 와 Lists의 newArrayList는 무슨차이가 있을까요?

 

 

Collections.emptyList()

public static final <T> List<T> emptyList() {
    return (List<T>) EMPTY_LIST;
}
  • Collections.emptyList() 는 static 으로 이미 만들어진 객체입니다.
  • 따라서 cpu와 메모리에 추가 비용이 발생하지 않습니다.
  • Collections.emptyList() 은 final 로 불변 객체를 리턴합니다.
  • 따라서 객체 값을 받아 변경하는 경우에 사용하는 것은 적합하지 않습니다.
  • 만약 위 객체를 받아서 변경하려는 경우 UnsupportedOperationException() 이 발생합니다.

 

Lists.newArrayList()

public static <E> ArrayList<E> newArrayList() {
        return new ArrayList<>();
    }
  • Collections.emptyList()와 달리 final 키워드가 없습니다. 즉, 객체 값 변경이 가능합니다.
  • 객체를 받아 값을 변경해야하는 등의 추가 작업이 있는경우 사용하기 적합합니다.

정리

빈 컬렉션을 반환해야 할 땐 Collections.emptyList()를 사용하고 객체 같을 받아 변경 작업이 필요하다면 Lists.newArrayList()를 사용합니다.

 

참고

https://stackoverflow.com/questions/5552258/collections-emptylist-vs-new-instance

https://kth990303.tistory.com/281

https://velog.io/@ychxexn/Collections.emptyList-vs-new-ArrayList

728x90
저작자표시 비영리 변경금지 (새창열림)

'스터디 > JAVA' 카테고리의 다른 글

[JAVA] Mac homebrew 설치 및 사용 방법  (1) 2024.01.27
[JAVA] Fail-Fast 와 Fail-Safe  (0) 2023.08.17
[JAVA] CollectionUtils.isEmpty() 사용법 및 예시  (0) 2023.02.12
[JAVA] StringUtils.isBlank()와 StringUtils.isEmpty() 차이  (0) 2023.02.11
[JAVA] 자바 예외 처리 (Exception)  (0) 2021.08.20
'스터디/JAVA' 카테고리의 다른 글
  • [JAVA] Mac homebrew 설치 및 사용 방법
  • [JAVA] Fail-Fast 와 Fail-Safe
  • [JAVA] CollectionUtils.isEmpty() 사용법 및 예시
  • [JAVA] StringUtils.isBlank()와 StringUtils.isEmpty() 차이
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코딜리티
    Kotlin
    pythoncodingtest
    Spring
    kafka
    Python
    자료구조
    스프링부트
    리트코드
    코딩
    LeetCode
    이분탐색
    프로그래머스
    코테공부
    쿠버네티스
    코딩테스트
    C++
    스프링
    코테
    네트워크
    springboot
    db
    알고리즘
    자바
    MySQL
    codility
    금융용어
    java
    카카오코테
    CodingTest
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[JAVA] Collections.emptyList() 와 Lists.newArrayList()
상단으로

티스토리툴바