In an interview, I want to build up a new String with some substrings. I argued that `ArrayList<String>` is almost the same as `StringBuilder`, but the interviewer said I should always use `StringBuilder` if I need to deal with String. I think the time complexity of adding/removing functions between them are the same.