您的位置:首页 > 编程语言 > Java开发

Java实现String.join()和效率比较

2016-04-01 16:51 579 查看

Java中没有类似于Python中对于字符串的join()方法。在我遇到这个问题的时候,实验了三个不同的实现join()的方法,并且对他们的效率进行了比较。其中第一个Join()方法效率最高,实现的代码如下:

import java.util.Date;

public class Test {
public static void main(String[] args) {
String[] strs = {"a","b","c","d","e","f","g","h"};
Date date = new Date();

for(int i =0; i<100000;i++)
join1(strs,"_");
recordTime(date);
for(int i =0; i<100000;i++)
join2(strs,"_");

recordTime(date);

for(int i =0; i<100000;i++)
join3(strs,"_");
recordTime(date);
}

private static void recordTime(Date date) {

System.out.println(new Date().getTime()-date.getTime());
date = new Date();
}
private static String join1(String[] strs,String splitter) {
StringBuffer sb = new StringBuffer();
for(String s:strs){
sb.append(s+splitter);
}
return sb.toString().substring(0, sb.toString().length()-1);
}

private static String join2(String[] strs,String splitter) {
StringBuffer sb = new StringBuffer();
for(String s:strs){
sb.append(s+splitter);
}
String s = sb.toString();
return s.substring(0, s.length()-1);
}

private static String join3(String[] strs,String splitter) {
StringBuffer sb = new StringBuffer();
for(int i = 0;i<strs.length;i++){
if (i!=strs.length-1) {
sb.append(strs[i]+splitter);
}else {
sb.append(strs[i]);
}
}

return sb.toString();
}
}


实验的结果如下:

join1:183

join2:307

join3:479

第二个慢与第一个的原因是创建了对象

第三个慢与第二个的原因是使用了if来进行判断
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: