这是我关于如何使用arraylist管理简单循环缓冲区的想法。我环顾四周,所有其他通告列表似乎都过于复杂。如果您不担心排序列表之类的问题,那么我认为这会更好,但是我希望得到您的反馈
public class CircularBuffer
{
//the number of records in the circular arraylist.
//I've made the members static so everyone can use the same buffer
private static ArrayList<Integer> circularList = new ArrayList<>();
//the number of records in the circular arraylist
private static final int circularArraySize = 30;
//Use this function to add an element to the buffer
public static void addElement(Integer item)
{
circularList.add(item);
//Drop an old record if the size gets too big
if (circularList.size() > circularArraySize)
{
//Here is where I'm not sure.
//If I remove index 0 from the list it should in theory be the oldest element in the list right?
circularList.remove(0);
}
}//end addCashup
public static Integer getIndex(int index)
{
if (index > circularArraySize || index > circularList.size())
{
//handle out of bound index
}
return circularList.get(index);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。