• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

Rope:理论与实践

发布: 2008-6-26 11:21 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 20次 | 进入领测软件测试网论坛讨论

领测软件测试网

I"v-_Kd5{uw 软件测试技术网f1uRmvr"W'n Y


1@;A1Y.M3Q3tO清单 3.在 rope 上迭代的两种技术软件测试技术网thE-m-_z P^xI
               
5jj$\C'cy A.~ E%K//Technique 1
"vDM9]c'\final Rope r=some initialization code;
J9?"m~7m{,R$Qfor (int j=0; j<r.length(); ++j) 软件测试技术网9V8UMV;k#b3Xy,f
    result+=r.charAt(j);

V^R)X8E9a)W*i

1o7@-j _!e$q//Technique 2
6e~}j%FYi#]final Rope r=some initialization code;
ybu9U|8Uy S'}for (final char c: r)
j)AW%J S    result+=c;
)N7hw8x)L2Gk s 软件测试技术网F `-dU G(j]w

软件测试技术网(f-B1BP#c7EI

软件测试技术网@ a8V)E`W-yD7B
返回 rope 内任意位置字符的操作是个 O(log n)操作。但是,由于每个字符上都使用 charAt,清单 3 中第一个代码块花了 n 倍的 O(log n)查询时间。第二个代码块使用的是 Iterator,应该比第一块执行得快一些。表 2 归纳了使用这两种方法在长度为 10,690,488 的 rope 上迭代的性能。为了比较,表 2 还包含了 String 和 StringBuffer 的时间。软件测试技术网EGAP$k