[英]Can I filter out duplicates within an array list using hashset in Java without distorting the order of the array?
[英]How can I using Array, List ,HashMap or HashSet - create long list of BitmapFields? (Java, Blackberry)
我需要:1)創建BitmapFields的長列表,以及2)將它們添加到屏幕上。 由於列表很長,我想使用一些簡短的自動化方法,例如Loop或類似方法:
while (i < 1000)
{
i = i + 1;
myBitmapField[i].setBitmap(Bitmap.getBitmapResource("picture" + i+ ".png"));
myVerticalFieldManager.add(_myBitmapField[i]);
}
但是似乎我不能將索引i分配給BitmapField myBitmapField [ i ]的名稱,而只能分配給文件本身的名稱。
那么,如何創建一長串BitmapFields? 我可以為此目的使用List,Array,HashMap或HashSet嗎? 歡迎舉個例子。 非常感謝! (黑莓,Java)
如果您遇到該錯誤,那僅意味着myBitmapField
未聲明為數組類型。 您需要將其聲明為數組,例如:
BitmapField[] myBitmapField = new BitmapField[1000];
for (int i = 0; i < 1000; i++) {
myBitmapField[i] = new BitmapField();
}
原則上,您可以使用列出的任何數據類型,盡管只能使用[...]
語法對數組進行索引。 您只需更改聲明初始化即可使用所需的任何數據類型。 而且,如果使用的類型不支持索引,則必須更改索引以對所選數據類型使用.get方法。 但是我不確定為什么您要使用數組以外的任何東西...
到那時,您最好將上述循環與現有循環結合起來,這樣就只有一個循環了。
另外,如果您要顯示1000張圖像,您的性能可能會很差 。 BlackBerry在處理列表中的任何類型的1000個字段時都遇到麻煩,並且圖像非常重。 在某些設備上加載甚至可能需要很長時間,BlackBerry才會認為您的應用已掛起並終止。 更不用說從UI的角度來看,在一個小的移動屏幕上放置這么多項目並不是很好,因為沒有用戶能夠在合理的時間內瀏覽所有項目。
我嘗試了您的方式,這似乎也不適合我。 嘗試這個:
private pics = new Vector();
for(int i = 0; i < 1000; i++{
BitmapField temp = new BitmapField();
pics.addElement(temp);
((BitmapField)pics.elementAt(i)).setBitmap(Bitmap.getBitmapResource("picture" + i + ".png"));
add((BitmapField)pics.elementAt(i));
}
我也同意@Ted關於1000個字段。 祝你好運,讓我們知道。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.