Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何更有效地追加字符串?_Java_Arrays_String - Fatal编程技术网

在Java中,如何更有效地追加字符串?

在Java中,如何更有效地追加字符串?,java,arrays,string,Java,Arrays,String,我编写了一个Java程序,其中需要附加一个字符串 “u13a2”到现有的“u1234 u12de u1386…u15a3” 因此,绳子逐渐变得越来越长。我发现在每个附加上花费的时间也越来越长。我们有什么办法可以在一定程度上改善这一点吗 我想到的实施包括: unicodeArray += " "+unicode; 或 他们表现相似。我认为导致这些糟糕性能的主要原因是特殊类型的String。它为每个赋值创建一个新对象。如果您也这么认为,这是否意味着我最好使用另一种类型,如字节数组?使用类。它在你试

我编写了一个Java程序,其中需要附加一个字符串

“u13a2”
到现有的
“u1234 u12de u1386…u15a3”

因此,绳子逐渐变得越来越长。我发现在每个附加上花费的时间也越来越长。我们有什么办法可以在一定程度上改善这一点吗

我想到的实施包括:

unicodeArray += " "+unicode;


他们表现相似。我认为导致这些糟糕性能的主要原因是特殊类型的
String
。它为每个赋值创建一个新对象。如果您也这么认为,这是否意味着我最好使用另一种类型,如字节数组?

使用类。它在你试图做的事情上更有效率

您可以为此使用
StringBuffer
StringBuilder
。两者都用于动态字符串操作<代码>StringBuffer是线程安全的,而as
StringBuilder
不是


在多线程环境中使用
StringBuffer
。但是如果它是单线程的,则建议使用
StringBuilder
,并且比
StringBuffer
快得多

java.lang.StringBuilder。使用int构造函数创建初始大小。

您应该使用该类

此外,请浏览:


-每次追加或对其进行任何修改时,它都会创建一个新的
字符串
对象


-所以使用
StringBuilder
append()
方法(如果线程安全性不重要),否则使用
StringBuffer
(如果线程安全性重要),这将是有效的方法。

StringBuffer也是线程安全的。看看这是怎么回事:StringBuilder不是线程安全的,而StringBuffer是。但是谁在并发线程中操纵单个字符序列呢?我相信StringBuffer的线程安全没有任何用处。它完全取决于需求。相关:我们需要多少重复的
StringBuilder
答案?@SteveKuo投票结束这个多余的问题比发布投诉更快。很棒的链接,@OrangeDog
unicodeArray = unicodeArray.concat(" "+unicode);
StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("Some text");
stringBuilder.append("Some text");
stringBuilder.append("Some text");

String finalString = stringBuilder.toString();