以下方法的运行时间有何不同?
public String merge(String[] words, String[] more) {
ArrayList<String> sentence = new ArrayList<String>();
for (String w : words) sentence.add(w);
return Arrays.toString(sentence.toArray());
}
假设上面的列表没有重新调整大小 - 时间复杂度与下面的方法相比如何?
public String makeSentence(String[] words) {
StringBuffer sentence = new StringBuffer();
for (String w : words) sentence.append(w);
return sentence.toString();
}
有没有更好的方法?
答案 0 :(得分:0)
最大的区别在于Arrays.toString()
可能希望返回一个由语言封闭的,以逗号分隔的单词列表,而使用StringBuffer将返回您完全放入其中的内容。试试看吧。当一种方法或另一种方法的结果甚至可能不是您想要的时候,时间复杂性的问题就变得毫无意义了。