На самом деле, я написал код, который делает то, что вы просите в O (1). Вопрос в том, что вы планируете делать с помощью Set next. Если вы просто назовете size()
на этом, это O (1), но если вы собираетесь повторять его, это, очевидно, O(2^n)
.
contains()
будет O(n)
и т. д.
Вам действительно нужно это?
EDIT:
Этот код теперь доступен в Guava , который отображается через метод Sets.powerSet(set)
.