On Wed, 18 Jan 2023 21:51:02 GMT, Martin Buchholz <mar...@openjdk.org> wrote:
> Like other reviewers, changing the performance tradeoffs in BitSet make me > uncomfortable. > > 30 years of code has adapted to the current performance tradeoffs. Those > users who really need O(1) cardinality() can fairly easily implement it in > client code (and probably have). > > The spirit of BitSet is space efficiency, and adding another field negates > that. > > cardinality() is O(N) but in practice should be very efficient due to linear > traversal and (presumably) the use of hardware bitcount instructions for each > word (fix that if not true). > > There may be a case for a BitSet rewrite (e.g. to support large sparse > bitsets) once we have compact value types. Leaving to the client the responsibility of implementation isn't against the principle of information hiding and encapsulation? ------------- PR: https://git.openjdk.org/jdk/pull/11837