五元素Java缓冲区

五元素Java缓冲区,java,algorithm,Java,Algorithm,当我尝试放置另一个元素以删除第一个元素时,创建具有五个元素的结构的最佳方法是什么 它非常容易处理,并且可以进行删除/添加操作是您需要的后进先出对象 如果你是一个Apache粉丝,你必须 如果你更喜欢番石榴,你就有 您也可以自己做:(LinkedList是其中之一) ` Apache Commons Collections提供的缓冲区满足您的需要。您所要求的被称为循环缓冲区或环形缓冲区 Java库适合您(,),因此您必须使用,或者使用第三方库。我不确定这是否是“最佳解决方案”,但它非常简单,并

当我尝试放置另一个元素以删除第一个元素时,创建具有五个元素的结构的最佳方法是什么 它非常容易处理,并且可以进行删除/添加操作

是您需要的后进先出对象

  • 如果你是一个Apache粉丝,你必须
  • 如果你更喜欢番石榴,你就有
  • 您也可以自己做:(LinkedList是其中之一)
`


Apache Commons Collections提供的缓冲区满足您的需要。

您所要求的被称为循环缓冲区或环形缓冲区


Java库适合您(,),因此您必须使用,或者使用第三方库。

我不确定这是否是“最佳解决方案”,但它非常简单,并且完全符合您的要求:

List<Foo> list = new ArrayList<>();
...

list.add(item);
if(list.size()>5){
 list.remove(0);
}
List List=new ArrayList();
...
列表。添加(项目);
如果(list.size()>5){
列表。删除(0);
}
公共类MyArrayList扩展了ArrayList{
私有静态最终整数最大值=5;
@凌驾
公共void添加(int索引,对象){
if(this.size()==MAX_size)
这个。删除(0);
super.add(最大大小-1,对象);
}
@凌驾
公共布尔添加(对象){
if(this.size()==MAX_size)
这个。删除(0);
返回super.add(object);
}
@凌驾

public boolean addAll(CollectionWhere?When?What?What?What?Which元素?元素应该是简单的双值,为什么你不能这样做?人们一直在抱怨我们粗鲁,但这就是问题所在。我们从这个问题中能理解什么?我们需要一个“读心术”功能site@SleimanJneidi6个答案,仍在计算:)
List<Foo> list = new ArrayList<>();
...

list.add(item);
if(list.size()>5){
 list.remove(0);
}
public class MyArrayList extends ArrayList<Object>{

    private static final int MAX_SIZE = 5;

    @Override
    public void add(int index, Object object) {

        if(this.size() == MAX_SIZE)
            this.remove(0);
        super.add(MAX_SIZE -1, object);
    }

    @Override
    public boolean add(Object object) {

        if(this.size() == MAX_SIZE)
            this.remove(0);
        return super.add(object);
    }

    @Override
    public boolean addAll(Collection<? extends Object> collection) {
        throw new SomeException();
    }

    @Override
    public boolean addAll(int index, Collection<? extends Object> collection) {
        throw new SomeException();
    }

}