Class ImmutableBitSet

  • All Implemented Interfaces:
    WordArray, java.lang.Cloneable, java.lang.Iterable<java.lang.Integer>

    public class ImmutableBitSet
    extends java.lang.Object
    implements java.lang.Cloneable, java.lang.Iterable<java.lang.Integer>, WordArray
    This is an immutable version of the BitSet class in this same package. It is meant to be used with memory-file mapping.
    final FileOutputStream fos = new FileOutputStream(tmpfile);
            BitSet Bitmap = BitSet.bitmapOf(0, 2, 55, 64, 512);
            Bitmap.serialize(new DataOutputStream(fos));
                    RandomAccessFile memoryMappedFile = new RandomAccessFile(tmpfile, "r");
                    ByteBuffer bb = memoryMappedFile.getChannel().map(
                                    FileChannel.MapMode.READ_ONLY, 0, totalcount);
                    ImmutableBitSet mapped = new ImmutableBitSet(bb.asLongBuffer());
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.nio.LongBuffer data  
    • Constructor Summary

      Constructors 
      Constructor Description
      ImmutableBitSet​(java.nio.LongBuffer bs)
      Construct a ImmutableBitSet from the content of the LongBuffer which should have been initialized with BitSet.serialize (from the BitSet in this same package).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      BitSet asBitSet()
      Get a copy of this ImmutableBitSet as a mutable BitSet.
      int cardinality()
      Compute the number of bits set to 1
      ImmutableBitSet clone()  
      boolean empty()
      Check whether a bitset contains a set bit.
      boolean equals​(java.lang.Object o)  
      boolean get​(int i)
      get value of bit i
      int getNumberOfWords()
      Get the total number of words contained in this data structure.
      long getWord​(int index)
      Get the word at the given index
      int hashCode()  
      boolean intersects​(BitSet bs)
      Checks whether two bitsets intersect.
      IntIterator intIterator()
      Iterate over the set bits
      java.util.Iterator<java.lang.Integer> iterator()  
      int nextSetBit​(int i)
      Usage: for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) { operate on index i here }
      int nextUnsetBit​(int i)
      Usage: for(int i=bs.nextUnsetBit(0); i>=0; i=bs.nextUnsetBit(i+1)) { operate on index i here }
      int size()
      Query the size
      java.lang.String toString()  
      IntIterator unsetIntIterator()
      Iterate over the unset bits
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • data

        private java.nio.LongBuffer data
    • Constructor Detail

      • ImmutableBitSet

        public ImmutableBitSet​(java.nio.LongBuffer bs)
        Construct a ImmutableBitSet from the content of the LongBuffer which should have been initialized with BitSet.serialize (from the BitSet in this same package). The input is not modified.
        Parameters:
        bs - the data source
    • Method Detail

      • asBitSet

        public BitSet asBitSet()
        Get a copy of this ImmutableBitSet as a mutable BitSet.
        Returns:
        a copy
      • cardinality

        public int cardinality()
        Compute the number of bits set to 1
        Returns:
        the number of bits
      • clone

        public ImmutableBitSet clone()
        Overrides:
        clone in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • empty

        public boolean empty()
        Check whether a bitset contains a set bit.
        Returns:
        true if no set bit is found
      • get

        public boolean get​(int i)
        get value of bit i
        Parameters:
        i - index
        Returns:
        value of the bit
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • intIterator

        public IntIterator intIterator()
        Iterate over the set bits
        Returns:
        an iterator
      • iterator

        public java.util.Iterator<java.lang.Integer> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Integer>
      • intersects

        public boolean intersects​(BitSet bs)
        Checks whether two bitsets intersect.
        Parameters:
        bs - other bitset
        Returns:
        true if they have a non-empty intersection (result of AND)
      • nextSetBit

        public int nextSetBit​(int i)
        Usage: for(int i=bs.nextSetBit(0); i>=0; i=bs.nextSetBit(i+1)) { operate on index i here }
        Parameters:
        i - current set bit
        Returns:
        next set bit or -1
      • nextUnsetBit

        public int nextUnsetBit​(int i)
        Usage: for(int i=bs.nextUnsetBit(0); i>=0; i=bs.nextUnsetBit(i+1)) { operate on index i here }
        Parameters:
        i - current unset bit
        Returns:
        next unset bit or -1
      • size

        public int size()
        Query the size
        Returns:
        the size in bits.
      • unsetIntIterator

        public IntIterator unsetIntIterator()
        Iterate over the unset bits
        Returns:
        an iterator
      • getNumberOfWords

        public int getNumberOfWords()
        Description copied from interface: WordArray
        Get the total number of words contained in this data structure.
        Specified by:
        getNumberOfWords in interface WordArray
        Returns:
        the number
      • getWord

        public long getWord​(int index)
        Description copied from interface: WordArray
        Get the word at the given index
        Specified by:
        getWord in interface WordArray
        Parameters:
        index - the index
        Returns:
        the word
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object