Какая польза от Collections.singletonList()
Java? Я понимаю, что он возвращает список с одним элементом. Зачем мне нужен отдельный метод для этого? Как неизменность играет роль здесь?
Существуют ли какие-либо особые полезные варианты использования этого метода, а не просто удобный метод?
Ответы:
Javadoc говорит , что это:
Ты спрашиваешь:
Прежде всего для удобства ... чтобы вам не пришлось писать последовательность утверждений для:
Это также может быть немного быстрее и / или сэкономить немного памяти, но маловероятно, что эти небольшие сбережения будут значительными. (Приложение, которое создает огромное количество одноэлементных списков, по меньшей мере необычно.)
Это часть спецификации метода; смотри выше.
Ясно, что есть случаи, когда удобно использовать
singletonList
метод. Но я не знаю, как бы вы (объективно) различали обычный вариант использования и «особенно полезный» ...источник
Вот один взгляд на одноэлементные методы:
источник
Из javadoc
пример
Используйте его, когда код ожидает список только для чтения, но вы хотите передать в него только один элемент.
singletonList
(поток-) безопасно и быстро.источник
Чтобы ответить на ваш неизменный вопрос:
Collections.singletonList
создаст неизменный список. Неизменяемый список (также называемый неизменяемым списком) не может быть изменен. Методы добавления или удаления элементов будут вызывать исключения, если вы попытаетесь изменить содержимое.Одиночный список содержит только этот элемент и не может быть изменен.
источник
Если коллекции Immutable / Singleton ссылаются на коллекцию, которая имеет только один объект и которая больше не модифицируется, то такая же функциональность может быть достигнута путем создания коллекции "UnmodifiableCollection", имеющей только один объект. Поскольку такая же функциональность может быть достигнута с помощью Unmodifiable Collection с одним объектом, то для чего предназначается Singleton Collection?
источник
singletonList может содержать экземпляр любого объекта. Состояние объекта можно изменить.
Мы не можем определить unmodifiableList как выше.
источник