2012-07-20 99 views
1

可能重复:
Size-limited queue that holds last N elements in JavaJava是否具有删除策略的有界集合?

是否java的包括天然类,其允许元件的最大数目和,如果我输入一个元件更大,它自动删除旧一个(例如基于自然分类)?

如果不是,我当然可以自己写,但我只是想问。

+0

的确是这样,我将迎来它。谢谢 – Aufziehvogel 2012-07-20 15:35:10

+0

你在这个编辑的问题的答案:[ffriend's Question](http://stackoverflow.com/questions/7878026/is-there-a-priorityqueue-implementation-with-fixed-capacity-and-custom-comparato) – 2012-07-20 15:38:31

回答

3

有很多。

您可以使用队列并指定固定长度。每次使用ArrayList删除元素0时,都会添加一个新元素,这会增加超出限制的大小。

一种流行的技术是使queue与LinkedHashMap中

queue = new LinkedHashMap<Integer, String>() 
    { 
    @Override 
    protected boolean removeEldestEntry(Entry<Integer, String> eldest) 
    { 
     return this.size() > yourMaxSize; 
    } 
    };