2011-03-25 27 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