private void resize()

in java/src/main/java/com/epam/deltix/containers/AvlTree.java [160:198]


    private void resize() {
        if (capacity == 0)
        {
            capacity = 10;
            prev = new int[capacity];
            next = new int[capacity];
            freeIndexes = new int[capacity];
            while (values.size() < capacity) {
                values.add(null);
            }
            while (keys.size() < capacity) {
                keys.add(null);
            }
            for(int i = 0; i < capacity; i++)
            {
                freeIndexes[i] = i;
                prev[i] = next[i] = -1;
            }
            freeIndexesHead = capacity - 1;
        }
        else
        {
            capacity <<= 1;
            while (values.size() < capacity) {
                values.add(null);
            }
            while (keys.size() < capacity) {
                keys.add(null);
            }
            prev = Arrays.copyOf(prev, capacity);
            next = Arrays.copyOf(next, capacity);
            freeIndexes = Arrays.copyOf(freeIndexes, capacity);
            for(int i = (capacity >> 1); i < capacity; i++)
            {
                freeIndexes[++freeIndexesHead] = i;
                prev[i] = next[i] = -1;
            }
        }
    }