Collections.emptyList () 대 새 목록 인스턴스

1. 소개

이 짧은 자습서에서는 Collections.emptyList () 와 새 목록 인스턴스 의 차이점을 설명합니다 .

2. 불변성

java.util.Collections.emptyList () 와 새 목록 (예 : new ArrayList ()) 의 핵심 차이점 은 불변성입니다.

Collections.emptyList () 는 수정할 수없는 목록 ( java.util.Collections.EmptyList )을 반환합니다 .

새 목록 인스턴스를 만들 때 구현에 따라 수정할 수 있습니다.

@Test public void givenArrayList_whenAddingElement_addsNewElement() { List mutableList = new ArrayList(); mutableList.add("test"); assertEquals(mutableList.size(), 1); assertEquals(mutableList.get(0), "test"); } @Test(expected = UnsupportedOperationException.class) public void givenCollectionsEmptyList_whenAdding_throwsException() { List immutableList = Collections.emptyList(); immutableList.add("test"); }

3. 개체 생성

Collection.emptyList () 는 소스 코드에 표시된 것처럼 새 빈 목록 인스턴스를 한 번만 만듭니다 .

public static final List EMPTY_LIST = new EmptyList(); public static final  List emptyList() { return (List) EMPTY_LIST; }

4. 가독성

빈 목록을 명시 적으로 만들려면 Collections.emptyList () 가 원래 의도를 더 잘 표현했습니다 ( 예 : new ArrayList ()) .

5. 결론

이 기사에서는 Collections.emptyList () 와 새 목록 인스턴스 의 차이점에 중점을 두었습니다 .

항상 GitHub에서 전체 소스 코드를 사용할 수 있습니다.