2
A
回答
0
最接近你可以來一個現有的具有容量限制的集合是一個BlockingQueue。將項目添加到隊列時,可以指定零秒(或非常小)的阻塞超時,以便在超過容量時引發異常。有關詳細信息,請參閱BlockingQueue.offer()
5
陣列具有在創建時,必須指定一個固定的長度。
一個TreeSet
作爲添加元素時,它會自動增長。您無法設置其大小。你只能閱讀它。
3
這種威脅可以幫助您fixed size list in Java
此外,您還可以實現自己的收藏,以添加元素,如果你的極限還未達到
1
TreeSet中的構造函數中沒有指定的初始大小,它生長時元素被添加。而且無法限制數據結構的最大大小。每次添加()一個新元素時,都需要手動檢查它是否超出了允許的最大值。您可以通過實現從TreeSet擴展的子類來指定此行爲,並重寫add(),addAll()以及接收Collection作爲參數的兩個構造函數。
2
您可以隨時自行實施。這是一個讓你開始的例子。你可能會發現你希望相應地調整它:
public class BoundedTreeSet<E> extends TreeSet<E> {
private final int limit;
public BoundedTreeSet(final int limit) {
super();
this.limit = limit;
}
public BoundedTreeSet(final int limit, final Collection<? extends E> c) {
super(c);
this.limit = limit;
}
public BoundedTreeSet(final int limit, final Comparator<? super E> comparator) {
super(comparator);
this.limit = limit;
}
public BoundedTreeSet(final int limit, final SortedSet<E> s) {
super(s);
this.limit = limit;
}
@Override
public boolean add(final E e) {
if (size() >= limit) {
return false;
}
return super.add(e);
}
@Override
public boolean addAll(Collection<? extends E> c) {
if (size() + c.size() >= limit) {
return false;
}
return super.addAll(c);
}
}
0
這裏是BoundedTreeSet
在Apache Solr實現,試圖插入時保持最大價值的實現「滿」的設置:可用
http://lucene.apache.org/solr/4_6_0/solr-core/org/apache/solr/util/BoundedTreeSet.html
Maven構件在這裏:
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>4.6.0</version>
</dependency>
相關問題
- 1. 設置大小
- 2. 設置爲CharSequence大小
- 3. 爲jQuery Mobile設置大小?
- 4. 爲rmiregistry設置堆大小
- 5. 將UIButton設置爲UICollectionViewCell的大小
- 6. 如何將大小設置爲全屏?
- 7. 將字體大小設置爲窗口
- 8. 將div大小設置爲a4
- 9. 將大小設置爲CodeMirror編輯器?
- 10. TreeSet違反設置合同?
- 11. 將小部件大小設置爲其他大小的一半
- 12. 設置大小UIImageView
- 13. 設置UIImageView大小?
- 14. UIScrollView設置大小
- 15. 設置大小android.R.layout.simple_dropdown_item_1line
- 16. 設置WebView大小
- 17. 設置SharedObject最大大小
- 18. Silverlight 3將內容大小設置爲頁面大小
- 19. WPF將UserControl大小設置爲MainWindow容器大小
- 20. 如何將Frame.Content大小設置爲Frame大小?
- 21. 如何將scrollview的大小設置爲textview的大小?
- 22. 如何將IFRAME的大小設置爲容器的大小?
- 23. 將複選框大小設置爲框大小
- 24. WPF - 將窗口大小設置爲child usercontrol大小
- 25. 設置Layered Drawable的大小?
- 26. Qt5:QPushButon大小設置
- 27. android android.support.v4.app.DialogFragment設置大小
- 28. 設置大小post_thumbnail和lightbox
- 29. WebdriverJS設置視口大小
- 30. WshShortcut設置外殼大小
你是什麼意思一個「大小限制」 你能給我們部分代碼嗎? – 2012-07-25 21:27:52
不 - 你可能要檢查這個[FixedSizeSortedSet(http://www.java2s.com/Code/Java/Collections-Data-Structure/FixedSizeSortedSet.htm) - 不能保證它是免費的錯誤...其實它不覆蓋這樣的addAll可能無法按預期工作... – assylias 2012-07-25 21:31:56