Re: BitSet Class Implementation



Thanks Daniel.


Daniel Pitts wrote:
Erick Crouse wrote:
Hello Everyone,

I need a question answered concerning the BitSet class. The problem is
that the public methods which manipulate a set of bits requires a
BitSet object as both the caller and argument to the method...

private BitSet A = new BitSet(16),
private BitSet B = new BitSet(16),

// do some manipulations with BitSet... and then...

A.and(B); // Results in a different A (B is unchanged)
A.xor(B); // Again results in a different A (B is unchanged)
// Interface: public void and( BitSet bits) -
BitSet;

The problem with this is that I prefer both A and B BitSet objects
remain the same while resulting in a new BitSet object say C using an
interface similar to -> public BitSet and( BitSet A, BitSet B) -
BitSet. With the current implementation of BitSet I would need to do
some sort of clone implementation (which seems like overkill) or
instantiate two identical A objects, say A1 and A2, one of which gets
operated on and then the other remains original for other purposes (
which seems a little awkward having to instantiate identical objects ),
Can anyone suggest what they would do in this situation where the
implementation operates either operand?

Thanks a Million,

EVAC

BitSet does have a clone. There wouldn't be any way to compute a.and(b)
without either mutating a, or cloning a and then mutating the clone.

If its that important to your design, I would create a wrapper class
called ImmutableBitSet which will handle the cloning of new bitsets for
you.

.



Relevant Pages

  • BitSet Class Implementation
    ... that the public methods which manipulate a set of bits requires a ... BitSet object as both the caller and argument to the method... ...
    (comp.lang.java.programmer)
  • Re: BitSet Class Implementation
    ... that the public methods which manipulate a set of bits requires a ... BitSet object as both the caller and argument to the method... ...
    (comp.lang.java.programmer)
  • Re: BitSet Class Implementation
    ... that the public methods which manipulate a set of bits requires a ... BitSet object as both the caller and argument to the method... ... some sort of clone implementation ...
    (comp.lang.java.programmer)