当前位置: 首页 > 知识库问答 >
问题:

Java:比较Int和字符串-性能

萧明贤
2023-03-14

我有一个字符串和一个int,让我们说:String str="12345";andint num=12345;。查看它们是否相同的最快方法是什么,str.equals("num)ornum==Integer.parseInt(str)(或者有更快的方法吗?)?

这是Integer的源代码。parseInt和String。等于

共有3个答案

方兴旺
2023-03-14

我想你也可以用这个来比较......

int p = 1234;
String Int = "1234";
String string = String.valueOf(p);
System.out.println(string + Int);
System.out.println(string.equals(Int));
code here
郜驰
2023-03-14

我认为num==Integer.parseInt(str)是一种更好的比较方式。因为str.equals("num)这不是比较整数值的理想方式,而且它会在String池中创建不必要的String常量对象(这会影响性能)。

燕翼
2023-03-14

<代码>数值==整数。parseInt(str)将快于str.equals(“”num)

str.equals("num)将首先将num转换为字符串,即O(n),其中n是数字中的位数。然后它将再次进行字符串连接O(n),然后最后进行字符串比较。在这种情况下,字符串比较将是另一个O(n)-n是数字中的位数。所以在所有~3*O(n)中

<代码>数值==整数。parseInt(str)将字符串转换为整数,即O(n),其中n是数字中的位数。然后整数比较是O(1)。所以只要1*O(n)

总而言之,两者都是O(n),但str.equals(“num”)有一个更高的常数,因此速度较慢。

 类似资料:
  • 问题内容: 我有一个String和一个int,可以说:和。什么是如果它们是相同的,看到的最快的方法还是(或者是有一个更快的方法?)? 这是Integer.parseInt和String.equals的源代码 问题答案: 会比 首先将num转换为O(n)的字符串,其中n是数字中的位数。然后它将再次进行字符串连接O(n),然后最终进行字符串比较。在这种情况下,字符串比较将是另一个O(n)-n是数字中的

  • 主要内容:equals() 方法,equalsIgnoreCase() 方法,equals()与==的比较,compareTo() 方法字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等。 在 Java 中,比较字符串的常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法。下面详细介绍这 3 个方法的使用。 equals() 方法 equals() 方法将逐个地比较两个字符串的每个字符是否相同。如果两个字符串具有相

  • 问题内容: 公认的是,在int列上搜索表的速度比在字符串列上搜索表的速度快(例如varchar)。 但是,如果我的衬衫表带有“颜色”列,那么创建一个颜色表时,该表上的主键是衬衫表上的外键会更好吗?搜索绿色的衬衫时,该联接是否会抵消在衬衫的“颜色”列中的值为int而不是诸如“绿色”之类的字符串值的性能优势? 问题答案: 与正在执行的其他操作相比,这两种方法之间不太可能有很大的性能差异。如果只有少数几

  • 我将保持这个简短。我正在编写一个模块,它需要比较作为字符串输入的两个大整数(注意:它们很大,但不足以超过Int64边界)。 字符串是填充的,因此选择是采取额外的步骤将其转换为等效的整数,还是将其作为字符串进行比较。 我正在做的是将它们中的每一个都转换为Int64并以这种方式进行比较。但是,我相信字符串比较也可以工作。鉴于我希望它尽可能高效,您对通过以下方式比较整数有什么看法: 或

  • 问题内容: 我写了一个从套接字读取一行的代码。 如果该行是“再见”,我希望它输出“ nice”。由于某种原因它不起作用,尽管我确实尝试无条件输出输入,并且确实说“再见” 这是我的代码 问题答案: 使用,而不是比较字符串。

  • 问题内容: 给我输出: 我不太了解第一行,为什么它会给我带来错误? 如果我在字符串2上添加空格,则此行为false,但如果不添加空格,则为true: 为什么第1行给我假,但第6行为真,但是如果我在string2上添加空格则为假。 谢谢=) 问题答案: 那里发生了几件事。 当您将两个字符串声明为相等的“ Hi”时,java将对其进行优化以引用相同的字符串对象(因此不必将相同的字符串存储两次)。 “