Рубрики
Без рубрики

Collections.emptyList() vs. Новый экземпляр Списка

Изучите различия между Collections.emptyList() и новым экземпляром списка.

Автор оригинала: baeldung.

1. введение

В этом коротком уроке мы проиллюстрируем разницу между Collections.emptyList() и новым экземпляром списка.

2. Неизменность

Основное различие между java.util.Collections.emptyList() и новый список, например new ArrayList<> () , является неизменяемым.

Collections.emptyList() возвращает список ( java.util.Коллекции.Пустой список ), который не может быть изменен.

При создании нового экземпляра списка вы можете изменить его в зависимости от реализации:

@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.empty List() создает новый экземпляр пустого списка только один раз , как показано в исходном коде:

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 .