java - 将 Set<String> 的内容放入单个字符串的最快方法,其中单词用空格分隔?

标签 java string optimization set whitespace

我有几个 Set<String> s 并希望将其中的每一个转换为单个 String其中每个元素的原始Set由空格“”分隔。 一个天真的第一种方法是这样做

Set<String> set_1;
Set<String> set_2;

StringBuilder builder = new StringBuilder();
for (String str : set_1) {
  builder.append(str).append(" ");
}

this.string_1 = builder.toString();

builder = new StringBuilder();
for (String str : set_2) {
  builder.append(str).append(" ");
}

this.string_2 = builder.toString();

谁能想到一种更快、更漂亮或更有效的方法来做到这一点?

最佳答案

使用 commons/lang 你可以使用 StringUtils.join :

String str_1 = StringUtils.join(set_1, " ");

为了简洁,你真的无法击败它。

更新:

重读这个答案,我更喜欢 the other answer regarding Guava's Joiner现在。事实上,这些天我并没有靠近 apache commons。

另一个更新:

Java 8 引入了方法 String.join()

String joined = String.join(",", set);

虽然这不如 Guava 版本灵活,但当您的类路径中没有 Guava 库时,它会很方便。

关于java - 将 Set<String> 的内容放入单个字符串的最快方法,其中单词用空格分隔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3042060/

相关文章:

java - gradle 中单个复制任务中的多个复制规范(嵌套复制规范)

java - Apache NetBeans 9.0 ant 构建失败

java - 如何不改变变量类型之间的信息?

c++ - 为什么 C++ 中长度为 n 的字符字符串在 [n] 索引上总是有一个空字符作为垃圾?

java - 是否优化过一次使用的变量定义?

python - 使用 NumPy 加速嵌套循环

optimization - 具有快速初始化功能的 JVM 脚本语言

java - 使用 Bottom Sheet 单中的接口(interface)

java - 如何在 OData 4 中实现三段或更多段导航

arrays - 如何使用Kotlin String的get方法