黑马程序员技术交流社区
标题:
一直有这样一个疑问,toCharArray()和charAt()哪个效率更高?
[打印本页]
作者:
小黑子
时间:
2014-10-18 18:25
标题:
一直有这样一个疑问,toCharArray()和charAt()哪个效率更高?
本帖最后由 小黑子 于 2014-10-20 07:10 编辑
假设有一个String str = "asflasdjfowegnesoafnaslfjaslf";
想对其中的每一个(注:是每一个,不是只取一个)字符取出后判断,
是直接用charAt()取出的效率高,还是先用toCharArray()转化成数组再取出,效率高呢?为什么呢?
作者:
笑脸迷人
时间:
2014-10-19 23:10
区别不是很大;
测试多次,charAt效率略高
测试代码如下
public class Test1 {
public static void main(String[] args) {
new Test1().test();
}
public static void toArray(String str){
char[] c=str.toCharArray();
for(int i=0;i<c.length;i++){
if(c[i]=='z'){
System.out.println("ok");
}
System.out.print(c[i]);
}
}
public static void charAt(String str){
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='z'){
System.out.println("ok");
}
System.out.print(str.charAt(i));
}
}
@Test
public void test(){
long currentTime1=System.currentTimeMillis();
for(int i=0;i<100000;i++){
toArray("aaaaa");//和charAt不同的字符串,长度相同即可~
}
long costTime1=System.currentTimeMillis()-currentTime1;
long currentTime2=System.currentTimeMillis();
for(int i=0;i<100000;i++){
charAt("bbbbb");
}
long costTime2=System.currentTimeMillis()-currentTime2;
System.out.println();
System.out.println(costTime1);
System.out.println(costTime2);
}
}
复制代码
作者:
小黑子
时间:
2014-10-20 07:10
笑脸迷人 发表于 2014-10-19 23:10
区别不是很大;
测试多次,charAt效率略高
测试代码如下
兄台,好个呐,大赞!
作者:
齐宁宁
时间:
2014-10-20 08:52
赞一个!
作者:
依然如故
时间:
2014-10-20 09:22
用时间来衡量不是很准确吧!同一时间可能运行的进程不一样,细微的差别说明不了什么吧!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2