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

回到顶部