Java: Comparing ints and Strings - Performance
comparison, java, parseint, performance
Solution
`num == Integer.parseInt(str)` is going to faster than `str.equals("" + num)`
`str.equals("" + num)` will first convert num to string which is O(n) where n being the number of digits in the number. Then it will do a string concatenation again O(n) and then finally do the string comparison. String comparison in this case will be another O(n) - n being the number of digits in the number. So in all ~3*O(n)
`num == Integer.parseInt(str)` will convert the string to integer which is O(n) again where n being the number of digits in the number. And then integer comparison is O(1). So just ~1*O(n)
To summarize both are O(n) - but `str.equals("" + num)` has a higher constant and so is slower.
Problem
I have a String and an int, lets say: `String str = "12345";` and `int num = 12345;`. What is the fastest way of seeing if they are the same, `str.equals("" + num)` or `num == Integer.parseInt(str)` (Or is there a faster way?)? This is the source code for Integer.parseInt and String.equals