1. введение
В этом коротком уроке мы проиллюстрируем разницу между Collections.emptyList() и новым экземпляром списка.
2. Неизменность
Основное различие между java.util.Collections.emptyList() и новый список, например new ArrayList<> () , является неизменяемым.
Collections.emptyList() возвращает список ( java.util.Коллекции.Пустой список ), который не может быть изменен.
При создании нового экземпляра списка вы можете изменить его в зависимости от реализации:
@Test public void givenArrayList_whenAddingElement_addsNewElement() { ListmutableList = 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 finalList emptyList() { return (List ) EMPTY_LIST; }
4. Читабельность
Если вы хотите явно создать пустой список, то Collections.emptyList() лучше выразил первоначальное намерение, например new ArrayList<>() .
5. Заключение
В этой статье мы сосредоточились на различиях между Collections.emptyList() и новым экземпляром списка.
Как всегда, полный исходный код доступен на GitHub .