BitsetsNET.RoaringArray.InsertNewKeyValueAt C# (CSharp) Method

InsertNewKeyValueAt() public method

insert a new key, it is assumed that it does not exist
public InsertNewKeyValueAt ( int i, ushort key, Container value ) : void
i int
key ushort
value Container
return void
        public void InsertNewKeyValueAt(int i, ushort key, Container value)
        {
            ExtendArray(1);
            Array.Copy(keys, i, keys, i + 1, Size - i);
            keys[i] = key;
            Array.Copy(values, i, values, i + 1, Size - i);
            values[i] = value;
            Size++;
        }

Usage Example

Example #1
0
        /// <summary>
        /// Adds the specified value to the current bitmap
        /// </summary>
        /// <param name="x">Value to be added</param>
        public void Add(int x)
        {
            ushort highBits       = Utility.GetHighBits(x);
            int    containerIndex = containers.GetIndex(highBits);

            if (containerIndex >= 0)
            {
                // a container exists at this index already.
                // find the right container, get the low order bits to add to the container and add them
                containers.SetContainerAtIndex(containerIndex, containers.GetContainerAtIndex(containerIndex).Add(Utility.GetLowBits(x)));
            }
            else
            {
                // no container exists for this index
                // create a new ArrayContainer, since it will only hold one integer to start
                // get the low order bits and att to the newly created container
                // add the newly created container to the array of containers
                ArrayContainer ac = new ArrayContainer();
                containers.InsertNewKeyValueAt(-containerIndex - 1, highBits, ac.Add(Utility.GetLowBits(x)));
            }
        }
All Usage Examples Of BitsetsNET.RoaringArray::InsertNewKeyValueAt