2011-08-30 49 views
1

上午和它的代碼是:ArrayList的trimtosize不工作有一個ArrayList的Android

ArrayList<String> recentdata=new ArrayList<String>(); 

我想要的ArrayList大小限制爲特定的大小,即5在我的情況,當達到這個數字。 這意味着0-5它作爲ArrayList,當它到達到5,我想停止的ArrayList增長。

對於正在使用:設置大小

if(recentdata.size() >= 5) { 
    recentdata.trimToSize(); 
} 

,但它不工作,即規模增長並沒有停止它去6,7等

如何做到這一點?任何其他方式來做到這一點?或者我的方法有什麼問題?

感謝

回答

3

trimToSize不會從列表中刪除任何元素。從the javadoc

修剪此ArrayList實例的容量是列表的當前 大小。應用程序可以使用此操作最小化的 一個ArrayList實例的存儲。

容量是ArrayList內部使用的數組大小。如果列表包含6個元素並且容量爲10,則數組的最後4個元素爲空。調用trimToSize將使列表使用一個6而不是10的數組。

只要其大小爲5,而不是添加,然後嘗試刪除,不要添加任何內容。

+0

東西isi希望最近的搜索列表,我必須每次添加recentdata,但它是有限的顯示5 .. – Udaykiran

+0

void addRecentSearch(String s){if(list。大小()<5){list.add(S);}其他{//太差}} –

+0

它很容易的事情,我理解了它,但我搞砸了與該方法..反正感謝名單 – Udaykiran

6

規模和能力是兩回事。

假設你有這樣的:

ArrayList<String> data = new ArrayList<String>(5); 

你的容量爲5,但大小爲0

然後添加一些數據:

data.add("hello"); 

然後調用trimToSize:

data.trimToSize(); 

你的S IZE和容量都現在1.

究竟是你想做些什麼?有可能是一個更好的方式來做到這一點:)