五元素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();
}
}