num == Integer.parseInt(str)
jedzie szybciej niż str.equals("" + num)
str.equals("" + num)
najpierw przekonwertować num ciąg, który jest O (n), gdzie n oznacza liczbę cyfr w liczbie. Następnie ponownie wykona konkatenację łańcuchową O (n), a następnie dokona porównania łańcuchów. Porównywanie ciągów w tym przypadku będzie kolejnym O (n) - n będącym liczbą cyfr w liczbie. Więc we wszystkich ~ 3 * O (n)
num == Integer.parseInt(str)
skonwertuje ciąg na liczbę całkowitą, która jest O (n) ponownie, gdzie n jest liczbą cyfr w liczbie. A następnie porównanie liczb całkowitych to O (1). Więc tylko ~ 1 * O (n)
Podsumowując oba są O (n) - ale str.equals("" + num)
ma wyższą stałą i tak jest wolniej.
mogę powiedzieć, że wartości całkowite mogą być sprawdzane pod kątem równości używając operatora porównania „==”. –