What is the cost of + operation on a String in Java?
问题 For this for loop, is the run time O(n) or O(n^2): char[] ar = new char[1000]; String s = ""; Arrays.fill(ar, 'a'); for(Character c: ar){ s += c; } So basically, what is the run time of + on a String? How does it work behind the scene in Java? 回答1: Java strings are immutable. Every time you do: s+=c; You're really saying: s = new String(s + c); new String(s + c) must allocate a string of length s + 1, or: 1 2 3 4 5 6 7 8 9 ... etc. Since Sum(1..N) == (n + 1) (n / 2), this is O(n^2). One of