gpt4 book ai didi

Java:比较整数和字符串 - 性能

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:04 26 4
gpt4 key购买 nike

我有一个字符串和一个整数,假设: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:比较整数和字符串 - 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com