大佬们,Java代码求教

问题如下:

有一个List< String>类型中有10万个字符串,请写一个Java程序将这些字符串尽量高效地合并成一个字符串。

求问谁可以解决这个问题。

7个回答

如同楼上说的,这种方法确实可行,但由于StringBuffer在java中是线程安全的,所以开销比较的,适用于多线程,
可用StringBuilder 代替。StringBuilder适用于单线程,效率比StringBuffer高。

qq_23126581
渊渟无迹静涛君 回复qq_40669620: 不客气的
12 个月之前 回复
qq_40669620
qq_40669620 感谢你的指教,谢谢
12 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 有道理
12 个月之前 回复

用StringBuffer
StringBuffer sb = new StringBuffer();
for (String s: list)
sb.append(s);
String result = sb.toString();

caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复qq_40669620: 嗯,采纳他也是一样的
12 个月之前 回复
qq_40669620
qq_40669620 感谢你的指教,写的很细致。但采纳了二楼的回答,望见谅
12 个月之前 回复

给你个链接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();然后用字符串截取试一试,截掉头尾的中括号,用“”替代所有的“,”,没测试过效率,只是提供一个方案

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐