清单 3.在 rope 上迭代的两种技术
//Technique 1
final Rope r=some initialization code;
for (int j=0; j<r.length(); ++j)
result+=r.charAt(j);
final Rope r=some initialization code;
for (final char c: r)
result+=c;
返回 rope 内任意位置字符的操作是个 O(log n)操作。但是,由于每个字符上都使用 charAt,清单 3 中第一个代码块花了 n 倍的 O(log n)查询时间。第二个代码块使用的是 Iterator,应该比第一块执行得快一些。表 2 归纳了使用这两种方法在长度为 10,690,488 的 rope 上迭代的性能。为了比较,表 2 还包含了 String 和 StringBuffer 的时间。