То, что метод интерфейса указан как необязательно в JavaDoc, означает, что классы, реализующие этот интерфейс, не обязательно должны реализовывать этот метод.Вместо этого они могли бы, например, бросить исключение.
Более конкретно, то, что метод интерфейса необязательный в JavaDoc, не означает, что это поведение, зависящее от реализации.Каждая конкретная реализация класса будет указывать, реализует ли он его или нет.Глядя на класс HashMap , он включает в себя операцию добавления и не определяет ее как необязательную.Таким образом, каждая реализация библиотеки Java должна включать реализацию этого метода для своего класса HashMap
.То же самое относится к TreeMap
и т. Д.
Причина, по которой может иметь смысл объявить эту операцию как необязательную , заключается в том, что некоторые наборы могут быть концептуально неизменными, например, возвращаемые Collections.unmodifiableSet