文章目录
String 两种遍历方式
遍历 String 中各个字符两种方式:
- 方法一,先 toCharArray() 转成字符数组,然后利用字符数组遍历
- 方法二,直接使用 String 自带的 charAt(int index) 方法来遍历
但是当我们刷 leetcode 时候会发现第一种方法比第二种方法效率要高的,这是为什么呢?在我们注重效率的时候我们也推荐第一种方式
速度快的原因我们先看下 charAt(int index) 源代码
public char charAt(int index) {
if ((index < 0) || (index >= value.length)) {
throw new StringIndexOutOfBoundsException(index);
}
return value[index];
}
多出来的这个 if 语句就是原因,如果这个 charAt 是在循环中,那么 if 的执行时间乘上循环次数 n 就是多出来的时间了。所以在不那么重视空间复杂度的时候,数据较多的时候使用第一种方式会明显发觉速度快了不少!