问题如下:
有一个List< String>类型中有10万个字符串,请写一个Java程序将这些字符串尽量高效地合并成一个字符串。
求问谁可以解决这个问题。
如同楼上说的,这种方法确实可行,但由于StringBuffer在java中是线程安全的,所以开销比较的,适用于多线程,
可用StringBuilder 代替。StringBuilder适用于单线程,效率比StringBuffer高。
用StringBuffer
StringBuffer sb = new StringBuffer();
for (String s: list)
sb.append(s);
String result = sb.toString();
给你个链接https://blog.csdn.net/lydong_/article/details/79812320,事实胜于雄辩,经测,StringUtils.join(list, "");方法效率最高,希望能帮到你
集合不是有个 toString()么,这个可以搞定
StringUtils.join(list,"-") 用这个,官方原生的com.sun.deploy.util.StringUtils 后面参数是中间的连接字符串。底层是用StringBuffer实现的拼接。
可以了解一下java8的StringJoiner,底层也是通过StringBuilder实现的
可以用list.toString();然后用字符串截取试一试,截掉头尾的中括号,用“”替代所有的“,”,没测试过效率,只是提供一个方案