Given a frozen, full segment, copies it into a freshly allocated one, which can be used for subsequent update operations.
Given a frozen, full segment, copies it into a freshly allocated one, which can be used for subsequent update operations.
The elements are shifted to the left of the segment as far as possible.
Note: undefined behavior for non-frozen segments.
Given a frozen segment, locates the head position, that is, the position of the first non-dequeued element in the array.
Given a frozen segment, locates the head position, that is, the position of the first non-dequeued element in the array.
Note: throws an exception for non-frozen segments.
Given a frozen segment, locates the last position, that is, the position of the FROZEN entry in the array.
Given a frozen segment, locates the last position, that is, the position of the FROZEN entry in the array. May update the last field.
If the array was full when frozen, it returns the length of the array.
Note: undefined behavior for non-frozen segments.
Using the locateHead and locateLast methods, computes the frozen segment size.
Given a frozen, full segment, constructs a new segment with a new array.
Given a frozen, full segment, constructs a new segment with a new array.
May shrink the array to avoid having empty elements at the beginning.
Note: undefined behavior for non-frozen segments.