Java:比较整数和字符串-性能
我有一个String和一个int,可以说:String str = "12345";
和int num =
12345;。什么是如果它们是相同的,看到的最快的方法str.equals("" + num)
还是num ==
Integer.parseInt(str)(或者是有一个更快的方法?)?
这是Integer.parseInt和String.equals的源代码
回答:
num == Integer.parseInt(str)
会比 str.equals("" + num)
str.equals("" +
num)首先将num转换为O(n)的字符串,其中n是数字中的位数。然后它将再次进行字符串连接O(n),然后最终进行字符串比较。在这种情况下,字符串比较将是另一个O(n)-n是数字中的位数。所以总共〜3
* O(n)
num == Integer.parseInt(str)
会将字符串再次转换为O(n)的整数,其中n是数字中的位数。然后整数比较为O(1)。所以只有〜1
* O(n)
总而言之,两者均为O(n)-但str.equals("" + num)
常数较高,因此速度较慢。
以上是 Java:比较整数和字符串-性能 的全部内容, 来源链接: utcz.com/qa/428234.html