CompositDisposable.add() / OpenHashSet.add() 是幂等的吗?

Is CompositDisposable.add() / OpenHashSet.add() idempotent?

我正在查看 CompositeDisposable 文档,它说 .dispose() 是幂等的。 .add()也是幂等的吗?

CompositeDisposable compositeDisposable = ...
Disposable disposable = ...

compositeDisposable.add(disposable);
compositeDisposable.add(disposable);
compositeDisposable.add(disposable);

compositeDisposable跟踪有多少个Disposables?我看到它由 OpenHashSet 支持,但不太清楚 OpenHashSet.add() 是如何工作的。

文档是从 Disposable.dispose() 复制而来的,也是对实施它的开发人员的建议。当然,他们也使 CompositeDisposable.dispose() 幂等。

对于 CompositeDisposable.add(Disposable),您已经注意到它得到了 OpenHashSet 的支持。由于这是一个 Set "implementation",它确保元素只添加一次,因此 add() 对于 类.

都是幂等的