Implementation of "Ring Buffer" in Java

What's "Ring Buffer"

Ring Buffer is basically like Queue. The difference between Ring Buffer and normal Queue is that Ring Buffer is circular data structure. So, if tail and head index reach the index of max size, they are reseted zero. Therefore we can save memory because we can reuse the space which was using already in array.

Implementation of "Ring Buffer" in Java

The points of implementation.

using "tail" and "head" in order to control the index which we should insert or get

We can define the "tail" and "head" like bellow

  • tail : the index of inserting object in array at next time
  • head: the index of getting object in array at next time

calculating the index by using remainder

By calculating the remainder obtained by dividing head or tail by size of array, we can have the index circulate.