java - 为什么没有 getFirst(iterable) 方法?

标签 java collections guava api-design iterable

IterablesgetLast

提供两种方法
 public static <T> T getLast(Iterable<T> iterable);
 public static <T> T getLast(Iterable<T> iterable, @Nullable T defaultValue);

但只有一个用于 getFirst

 public static <T> T getFirst(Iterable<T> iterable, @Nullable T defaultValue);

是否有任何破坏对称性的设计/实现原因?

最佳答案

我认为重点是没有理由使用 getFirst(iterable),因为这可以通过 iterable.iterator().next() 来完成。 Guava 做了一个很好的尝试来保持 API 很小,因此没有添加可以/应该以其他方式轻松完成的事情。

另一方面,目前还没有一种机制来测试可迭代对象是否为空,如果是则返回默认值而不是第一个值。因此,getFirst(iterable, default).

此外,没有简单的方法来获取最后一个元素,因此 getLast(iterable)getLast(iterable, default)

关于java - 为什么没有 getFirst(iterable) 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473826/

相关文章:

Java代码将字节转换为十六进制

java - 在 hashmap 中一般实现方法中传递参数

c# - 根据条件合并 IEnumerable 中的元素

java - 使用 Guava 的 future 可迭代?

java - 使用 FileInputStream 与 URLConnection 读取文件

java - 如何为“列表”首选项中的选项设置 onClick 监听器?

Scala 增强集合

Java 在 O(1) 中合并 2 个集合

java - 无法从 gradle 解析 com.google.guava

java - Crc32c(长)值的 Base64 编码