Android 如何将int转换为整数 私有静态HashMap mBitmapCache; mBitmapCache.put(R.drawable.bg1,对象);
Android 如何将int转换为整数 私有静态HashMap mBitmapCache; mBitmapCache.put(R.drawable.bg1,对象);,android,Android,R.drawable.bg1是一个int。。。但是我想转换成整数,因为Hashmap需要整数。。。当在几秒钟内绘制多个对象时,它会创建一个整数对象运行时 这会影响代码的性能 private static HashMap<Integer, Bitmap> mBitmapCache; mBitmapCache.put(R.drawable.bg1,object); 由于评论指出了一个问题,并提出了初步的解决方案,所以对答案
R.drawable.bg1
是一个int
。。。但是我想转换成整数
,因为Hashmap
需要整数
。。。当在几秒钟内绘制多个对象时,它会创建一个整数对象运行时
这会影响代码的性能
private static HashMap<Integer, Bitmap> mBitmapCache;
mBitmapCache.put(R.drawable.bg1,object);
由于评论指出了一个问题,并提出了初步的解决方案,所以对答案进行了编辑。我也遇到了类似的问题。为此,您可以使用一个Hashmap,它接受“字符串”和“对象”,如下代码所示:
int iInt = 10;
Integer iInteger = Integer.valueOf(iInt);
/**存储图像数据库图标*/
public static int[]imageIconDatabase={R.drawable.ball,
R.drawable.catmouse,R.drawable.cube,R.drawable.fresh,
R.drawable.吉他,R.drawable.橙色,R.drawable.茶壶,
印度、泰国、荷兰、,
R.drawable.srilanka,R.drawable.pakistan,
};
private void initializeImageList(){
//TODO自动生成的方法存根
对于(int i=0;i
}i它是整数,整数到整数
/** 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]);
}
添加到集合
Integer intObj = new Integer(i);
如前所述,一种方法是使用
int-original=32;
整数转换=新整数(原始);
但是您不应该直接调用包装类的构造函数。这样做是不好的做法。相反,使用专门为此目的预定义的方法
因此,新代码如下所示(推荐):
mBitmapCache.put(Integer.valueOf(R.drawable.bg1),对象);
其中一种方法是使用以下方法Integer obj=新整数(原语值)
或者在您的情况下,使用新的整数(R.drawable.bg1)。
唯一的问题是它会在运行时不必要地创建一个对象
如果您使用的是JDK 5或更高版本,您可以使用自动装箱功能。让我们暂时把它放在一边 在Integer类(java.lang.Integer)中,我们有许多方法,其中之一是:
静态整数值(int)
它以整数形式返回int的值
因此,
Integer.valueOf(R.drawable.bg1)
可以工作。“您不应该直接调用包装类的构造函数,例如newinteger(42)
。相反,应该调用valueOf factory方法,例如Integer.valueOf(42)。这通常会使用较少的内存,因为0和1等常见整数将共享一个实例。“Integer iInteger=Integer.valueOf(iInt);我认为这是自动完成的,因此你可以有一些想法,比如Integer iInteger=iInt我只是想和大家分享一下“你不应该调用构造函数…”这句话,只是出于好奇,它是Integer value=(Integer)intValue代码>一个糟糕的做法?或者,不建议将整数转换为整数?@ChaitanyaKarmarkar,这绝对不是一个坏做法。我这么说是因为在上一次编辑中,他使用了newinteger(int)代码>。但是,我觉得当有一种方法专门用于某一目的时,使用这种方法总是更有意义的。当你试图回答一个已经被回答的问题时,我觉得这样做总是更有效的(一般来说,不是特定于整数转换)。在答案中添加更多信息,以便增加价值。是否有理由“您不应该直接调用包装类的构造函数”?不是真的-只是猜测开发人员没有在每次调用时创建新对象的冲动。很少出现这种情况:如果要区分多个整数对象,可以使用new Integer()。大多数情况下:您使用Integer而不是int,只是因为您希望也有空值。Integer.valueOf()在特定场景中多次调用时将返回相同的对象,这将节省内存(新Integer()的情况永远不会如此)
list.add(String.valueOf(intObj));