2013-04-13 26 views

回答

13

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)有一個更高的常數,所以更慢。

5

我覺得num == Integer.parseInt(str)是做比較的更好的方法。因爲str.equals("" + num)這不是理想的方式,你應該如何比較整數值,並且它會在字符串池中創建不必要的字符串常量對象(這會妨礙性能)。

+0

我的意思是說,整數值可以平等使用比較操作符「==」進行檢查。 –

1

猜你也許還可以用這個來比較........

int p = 1234; 
String Int = "1234"; 
String string = String.valueOf(p); 
System.out.println(string + Int); 
System.out.println(string.equals(Int)); 
code here