Java ArrayList集合,用于保存最新的5个新增功能

时间:2014-10-22 11:00:20

标签: java list arraylist collections

我有一个额外的普通要求,即Java对象数组列表(或列表初始化为ArrayList)将不断更新,并且应该只保留最新的5个项目,并且对象按照降序排列。他们被加入了。

如何实现这一目标?我需要在Java SE 7中提出一个解决方案,最好不要使用第三方库。

注意对于那些将此问题标记为重复的人,您似乎并不理解在这种情况下使用ArrayList的要求,并且Queues和ArrayLists是不同的对象类型,以及Java和C#是不同的语言。您是否认为Stackoverflow的内部搜索引擎在查找重复问题方面不如您所做的那么好?

将问题标记为"重复"时,请确保链接真实副本。

1 个答案:

答案 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);
        }
    }
}