num == Integer.parseInt(str)
sta andando più veloce di str.equals("" + num)
str.equals("" + num)
sarà prima convertire num a stringa che è O (n), dove n è il numero di cifre nel numero. Quindi eseguirà nuovamente una concatenazione di stringhe (n) e infine eseguirà il confronto tra stringhe. Il confronto delle stringhe in questo caso sarà un altro O (n) - n che è il numero di cifre nel numero. Quindi in tutto ~ 3 * O (n)
num == Integer.parseInt(str)
convertirà la stringa in numero intero che è O (n) di nuovo dove n è il numero di cifre nel numero. E poi il confronto tra interi è O (1). Quindi solo ~ 1 * O (n)
Per riassumere entrambi sono O (n) - ma str.equals("" + num)
ha una costante più alta e quindi è più lenta.
fonte
2013-04-13 05:46:39
voglio dire che i valori interi possono essere controllati per l'uguaglianza utilizzando l'operatore di confronto '=='. –