使用五个元素创建一些构造的最佳方法是什么?当我尝试使用另一个构建来删除第一个元素时?
答案 0 :(得分:1)
我建议您ArrayList Handle非常容易,删除/添加操作可用
答案 1 :(得分:0)
Queue是您需要的LIFO对象。
`
// Create
Queue q = new LinkedList();
// Insert
void safeInsert(Queue q, Object elt) {
if (q.size()>=5) {
q.poll();
}
q.offer(elt);
}
答案 2 :(得分:0)
Apache Commons Collections提供的CircularFifoQueue可以满足您的需求。
答案 3 :(得分:0)
您要求的内容称为循环缓冲区或循环缓冲区。
Java库does not provide an implementation适合您(confirmed,confirmed again),因此您必须write one yourself或使用第三方库。
答案 4 :(得分:0)
我不确定这是否是最佳解决方案",但它非常简单并且完全符合您的要求:
List<Foo> list = new ArrayList<>();
...
list.add(item);
if(list.size()>5){
list.remove(0);
}
答案 5 :(得分: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();
}
}