Мне сказали, что код, например:
for (int i = 0; i < x.length(); i++) {
// blah
}
на самом деле O (n ^ 2) из-за повторных вызовов x.length()
. Вместо этого я должен использовать:
int l = x.length();
for (int i = 0; i < l; i++) {
// blah
}
Это правда? Длина строки сохраняется как частный целочисленный атрибут класса String? Или String.length()
действительно перемещает всю строку только для определения ее длины?