2011-03-25 61 views
12
private static HashMap<Integer, Bitmap> mBitmapCache;   
mBitmapCache.put(R.drawable.bg1,object);      

R.drawable.bg1int ......但我想轉換成Integer因爲Hashmap需要一個Integer ...並在幾秒鐘繪製多個對象時,它會創建一個Integer對象運行 這會影響代碼的執行...如何轉換INT到整數

回答

27
int iInt = 10; 
Integer iInteger = new Integer(iInt); 
+3

「你不應該要求包裝類 直接,如構造新的整數(42)'。相反,請調用valueOf 工廠方法,如Integer.valueOf(42)。這將典型地 使用較少的內存,因爲共同的整數,這樣 0和1將共享一個實例「 整數iInteger = Integer.valueOf(IINT); – user3439968 2015-10-03 15:01:43

+0

我認爲這是自動完成的,因此你可以有somethink像' Integer iInteger = iInt;'它應該可以工作 – 2016-09-22 13:34:14

1

我有類似的問題。爲此,可以使用HashMap其中以「串」和「對象」,如下面的代碼:

/** stores the image database icons */ 
public static int[] imageIconDatabase = { R.drawable.ball, 
     R.drawable.catmouse, R.drawable.cube, R.drawable.fresh, 
     R.drawable.guitar, R.drawable.orange, R.drawable.teapot, 
     R.drawable.india, R.drawable.thailand, R.drawable.netherlands, 
     R.drawable.srilanka, R.drawable.pakistan, 

}; 
private void initializeImageList() { 
    // TODO Auto-generated method stub 
    for (int i = 0; i < imageIconDatabase.length; i++) { 
     map = new HashMap<String, Object>(); 

     map.put("Name", imageNameDatabase[i]); 
     map.put("Icon", imageIconDatabase[i]); 
    } 

}

+0

謝謝Vicky我認爲我的問題將從您的解決方案中得到解決...... – user643144 2011-03-28 04:30:49

+0

gr8如果它適合您 – 2011-03-30 05:28:19

-2

我它整數,INT爲整數

Integer intObj = new Integer(i); 

添加到收集

list.add(String.valueOf(intObj)); 
+1

當您試圖回答已經被回答的問題時。添加更多的信息給答案,以便增加值 – Vishnu667 2017-01-21 19:49:12

6

如前所述,一個方法是使用

new Integer(my_int_value) 

你不應該要求包裝類的構造函數直接

因此,修改相應的代碼:

mBitmapCache.put(Integer.valueof(R.drawable.bg1),object); 
+1

是否有一個原因「你不應該直接調用包裝類的構造函數」? – 2017-04-25 22:56:22

+0

不是真的 - 這只是一個猜測,開發者沒有創建新的衝動每次通話都有對象 很少情況:如果您想區分多個Integer對象,您可以使用新的Integer()。 大部分情況:您正在使用Integer而不是int,因爲您還想要* null *值。 Integer.valueOf()會在特定情況下在多個調用中返回相同的對象,這將節省內存(從不使用新的Integer())。 – Evusas 2017-04-26 00:14:08