В Java 9 были введены новые статические методы factory на интерфейсе Set, вызываемые(), которые принимают несколько элементов или даже массив элементов.
Я хотел превратить список в набор, чтобы удалить любые повторяющиеся записи в наборе, которые можно сделать (до Java 9), используя:
Set<String> set = new HashSet<>();
set.addAll(list);
Но я подумал, что было бы здорово использовать этот новый статический factory метод Java 9:
Set.of(list.toArray())
где list
- это список строк, ранее определенный.
Но, увы, java выбрал IllegalArgumentException
, когда элементы были дубликатами, также указанными в Javadoc метода. Почему это?
Изменить: этот вопрос не является дубликатом другого вопроса о концептуально эквивалентной теме - методе Map.of(), но совершенно другой. Не все статические методы factory of() ведут себя одинаково. Другими словами, когда я задаю вопрос о методе Set.of(), я бы не стал нажимать на вопрос, связанный с методом Map.of().