在检查平等时将字符串转换为Int或Int转换为字符串是否更高效?

mak*_*uti 8 java android

以下设置:

int a=3;
String b="3";
Run Code Online (Sandbox Code Playgroud)

两个变量都表示在语义上相等的ID.由于应用程序适用于移动设备,因此以尽可能最有效的方式完成这些变量的比较非常重要.

将这些变量与此代码段进行比较是否有效,

boolean areEqual = Integer.parseInt(b) == a;
Run Code Online (Sandbox Code Playgroud)

或者这个?

boolean areEqual = String.valueOf(a).equals(b);
Run Code Online (Sandbox Code Playgroud)

Sto*_*wke 4

除非您进行了数千次这种比较,否则这可能并不重要。也就是说,如果你看看每个语句在做什么:

boolean areEqual = Integer.parseInt(b) == a; 该语句解析该String值一次,然后对两个原始值进行极快的比较int

boolean areEqual = String.valueOf(a).equals(b); 该语句处理String一次以创建String的值a,然后进行String比较。步骤更多,内部逻辑更多,因此效率较低。