guava - 空集合的连接结果是什么

标签 guava

我想知道,如果给它一个空集合,Joiner.join 究竟会如何表现:

Joiner.on(",").join(new ArrayList());

我想知道,这里的预期行为是什么。它会返回一个空字符串还是一个空值?还是取决于库的平台和实现?

最佳答案

好吧,检查来源:

public String join(Iterable<? extends Entry<?, ?>> entries) {
  return join(entries.iterator());
}

下一个:
public String join(Iterator<? extends Entry<?, ?>> entries) {
  return appendTo(new StringBuilder(), entries).toString();
}

最后(跳过一种方法):
public <A extends Appendable> A appendTo(A appendable, Iterator<? extends Entry<?, ?>> parts) throws IOException {
  checkNotNull(appendable);
  if (parts.hasNext()) {
    ...
  }
  return appendable;
}

如果您的收藏为空 appendTo()将返回空 StringBuilder .所以,结果是空字符串。

关于guava - 空集合的连接结果是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188975/

相关文章:

java - 使用 TreeMap 而不是 HashMap 的 guava multimap?

git-svn - 无法使用git-svn获取 Guava

java - 在给定迭代器的情况下使用 for-each 循环的惯用方式?

java - 如何在迭代此集合时避免 ConcurrentModificationException?

java - Guava 缓存与 ehcache 基准测试

Java6、Guava、泛型、类型推断

java - 用另一个 List 扩展 ImmutableList.of()

java - Java 中具有 Long 或 AtomicLong 值的多键映射

java - 订阅事件总线

Java:只检查不可变对象(immutable对象)的equals()中的hashCode