home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- public final class BitSet implements Cloneable {
- static final int BITS = 6;
- static final int MASK = 63;
- long[] bits;
-
- public BitSet() {
- this(64);
- }
-
- public BitSet(int nbits) {
- this.bits = new long[nbits + 63 >> 6];
- }
-
- private void grow(int nbits) {
- long[] newbits = new long[Math.max(this.bits.length << 1, nbits + 63 >> 6)];
- System.arraycopy(this.bits, 0, newbits, 0, this.bits.length);
- this.bits = newbits;
- }
-
- public void set(int bit) {
- int n = bit >> 6;
- if (n >= this.bits.length) {
- this.grow(bit);
- }
-
- long[] var10000 = this.bits;
- var10000[n] |= 1L << (bit & 63);
- }
-
- public void clear(int bit) {
- int n = bit >> 6;
- if (n >= this.bits.length) {
- this.grow(bit);
- }
-
- long[] var10000 = this.bits;
- var10000[n] &= ~(1L << (bit & 63));
- }
-
- public boolean get(int bit) {
- int n = bit >> 6;
- if (n < this.bits.length) {
- return (this.bits[n] & 1L << (bit & 63)) != 0L;
- } else {
- return false;
- }
- }
-
- public void and(BitSet set) {
- int n = Math.min(this.bits.length, set.bits.length);
-
- long[] var4;
- for(int i = n; i-- > 0; var4[i] &= set.bits[i]) {
- var4 = this.bits;
- }
-
- while(n < this.bits.length) {
- this.bits[n] = 0L;
- ++n;
- }
-
- }
-
- // $FF: renamed from: or (java.util.BitSet) void
- public void method_0(BitSet set) {
- long[] var3;
- for(int i = Math.min(this.bits.length, set.bits.length); i-- > 0; var3[i] |= set.bits[i]) {
- var3 = this.bits;
- }
-
- }
-
- public void xor(BitSet set) {
- long[] var3;
- for(int i = Math.min(this.bits.length, set.bits.length); i-- > 0; var3[i] ^= set.bits[i]) {
- var3 = this.bits;
- }
-
- }
-
- public int hashCode() {
- long h = 1234L;
- int i = this.bits.length;
-
- while(true) {
- --i;
- if (i < 0) {
- return (int)(h >> 32 ^ h);
- }
-
- h ^= this.bits[i] * (long)i;
- }
- }
-
- public int size() {
- return this.bits.length << 6;
- }
-
- public boolean equals(Object obj) {
- if (obj != null && obj instanceof BitSet) {
- BitSet set = (BitSet)obj;
- int n = Math.min(this.bits.length, set.bits.length);
- int i = n;
-
- while(i-- > 0) {
- if (this.bits[i] != set.bits[i]) {
- return false;
- }
- }
-
- if (this.bits.length > n) {
- int i = this.bits.length;
-
- while(i-- > n) {
- if (this.bits[i] != 0L) {
- return false;
- }
- }
- } else if (set.bits.length > n) {
- int i = set.bits.length;
-
- while(i-- > n) {
- if (set.bits[i] != 0L) {
- return false;
- }
- }
- }
-
- return true;
- } else {
- return false;
- }
- }
-
- public Object clone() {
- try {
- BitSet set = (BitSet)super.clone();
- set.bits = new long[this.bits.length];
- System.arraycopy(this.bits, 0, set.bits, 0, this.bits.length);
- return set;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- public String toString() {
- String str = "";
-
- for(int i = 0; i < this.bits.length << 6; ++i) {
- if (this.get(i)) {
- if (str.length() > 0) {
- str = str + ", ";
- }
-
- str = str + i;
- }
- }
-
- return "{" + str + "}";
- }
- }
-