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来进行判断
相关文章推荐
- Spring容器启动过程
- 使用 Maven 和 Eclipse IDE 创建 .jar 部署程序包 (Java)
- Spring + Mybatis配置多数据库
- Java利用mpxj解析mpp格式文件
- JAVA常用工具包
- 160330、Mybatis整合Spring
- spring 加载流程走向
- Java核心知识点-多线程同步锁
- Java反序列化
- Web加载Spring的过程
- Java二维数组
- org.springframework.dao.DuplicateKeyException:
- FreeMarker应用一例——生成Java代码
- Java中overload和override的区别
- Spring MVC系列(四)之session处理---@SessionAttributes
- Java读取html页面以文件流方式输出显示在页面
- webSocket 案例 使用spring4.0.0
- Spring 的事务,分布式事务。
- 小白的成长之路(1)--安装JDK
- ServletContextListener 启动SPRING加载数据到缓存的应用