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

时间:2018-03-01 03:09:46

标签: rx-java2 composite

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

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

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

CompositeDisposable跟踪有多少个Disposables?我看到它由OpenHashSet支持,但OpenHashSet.add()的工作方式并不十分清楚。

1 个答案:

答案 0 :(得分:1)

文档从Disposable.dispose()复制,并向实现它的开发人员提出建议。当然,他们也CompositeDisposable.dispose()也是幂等的。

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