Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将int转换为整数 私有静态HashMap mBitmapCache; mBitmapCache.put(R.drawable.bg1,对象);_Android - Fatal编程技术网

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=iIntInteger value=(Integer)intValue一个糟糕的做法?或者,不建议将整数转换为整数?@ChaitanyaKarmarkar,这绝对不是一个坏做法。我这么说是因为在上一次编辑中,他使用了
newinteger(int)。但是,我觉得当有一种方法专门用于某一目的时,使用这种方法总是更有意义的。当你试图回答一个已经被回答的问题时,我觉得这样做总是更有效的(一般来说,不是特定于整数转换)。在答案中添加更多信息,以便增加价值。是否有理由“您不应该直接调用包装类的构造函数”?不是真的-只是猜测开发人员没有在每次调用时创建新对象的冲动。很少出现这种情况:如果要区分多个整数对象,可以使用new Integer()。大多数情况下:您使用Integer而不是int,只是因为您希望也有空值。Integer.valueOf()在特定场景中多次调用时将返回相同的对象,这将节省内存(新Integer()的情况永远不会如此)
list.add(String.valueOf(intObj));