我有一个额外的普通要求,即Java对象数组列表(或列表初始化为ArrayList)将不断更新,并且应该只保留最新的5个项目,并且对象按照降序排列。他们被加入了。
如何实现这一目标?我需要在Java SE 7中提出一个解决方案,最好不要使用第三方库。
注意对于那些将此问题标记为重复的人,您似乎并不理解在这种情况下使用ArrayList的要求,并且Queues和ArrayLists是不同的对象类型,以及Java和C#是不同的语言。您是否认为Stackoverflow的内部搜索引擎在查找重复问题方面不如您所做的那么好?
将问题标记为"重复"时,请确保链接真实副本。
答案 0 :(得分:0)
不确定降序,但这显示了一种修正大小的方法
class BoundedArrayList<E> extends ArrayList<E> {
private int fixedCapacity;
public BoundedArrayList(int fixedCapacity) {
super(fixedCapacity);
this.fixedCapacity = fixedCapacity;
}
@Override
public boolean add(E e) {
// is it about to cross limit ? removing it in advance
if(this.size() > fixedCapacity - 1) {
E element = this.remove(fixedCapacity - 1);
System.out.println("Removed due to overflow : " + element);
}
this.add(0, e);
return true;
}
public static void main(String[] args) {
BoundedArrayList<Integer> list = new BoundedArrayList<Integer>(5);
for(int i =0 ; i < 10; i++) {
list.add(i);
System.out.println(list);
}
}
}