Это медленно:
for(int i = 0, n = s.length() ; i < n ; i++) {
char c = s.charAt(i);
}
, но может быть быстрее, например: int length = s.length ();
for(int i = 0, n = length ; i < n ; ++i) {
char c = s.charAt(i);
}
где различия: - извлекает длину впеременная, чтобы предотвратить пересчитать это снова и снова.- ++ i быстрее i ++, потому что для него не требуется временная переменная и сборщик мусора.
Это быстрее:
for(char c : s.toCharArray()) {
// process c
}
, поскольку он использует итератор и может быть оптимизированхорошо компилятором Java.Итераторы всегда быстрее, чем простой цикл (за исключением некоторых странных случаев, когда итераторы выполняют сложную логику или ресурсоемкую работу)
Но лучше использовать этот класс итераторов символов в другом посте здесь.
С уважением