gpt4 book ai didi

search - 用于在集合中查找项目并检查是否完全匹配的 Java 库方法

转载 作者:行者123 更新时间:2023-11-30 06:23:20 25 4
gpt4 key购买 nike

是否有任何常见的 Java 库提供一种方法来在有限集合中查找元素 确保只有一个匹配项

例如,如果未找到任何内容,该方法可以返回 null,如果找到多个元素,则抛出异常。

目前我使用自己的实现(见下文),但我宁愿不使用此类实用方法污染业务代码(即使在单独的实用程序包中提取)。

我也想要多次迭代集合的开销,或者过滤集合和查看结果长度的开销。

附言我当前的解决方案(有效,但将被替换为库方法):

public static <T> T getSingleMatch(Iterable<T> lookIn, com.google.common.base.Predicate<? super T> predicate) {
T foundItem = null;
for (T item : lookIn) {
if (predicate.apply(item)) {
if (foundItem != null)
throw new RuntimeException("multiple matches"); // alternatively: `return null;`
else
foundItem = item;
}
}
// alternatively: `if (foundItem == null) throw ...`
return foundItem;
}

最佳答案

一个选择是将两个想法分离到两个方法中,这样每个方法做一件事 - 然后组合调用

  • 一种延迟过滤的方法,返回一系列匹配结果
  • 一种从序列中返回一个项目的方法,要求它是唯一的项目

Guava有这两个:

例如:

String match = Iterables.getOnlyElement(Iterables.filter(source, predicate));

关于search - 用于在集合中查找项目并检查是否完全匹配的 Java 库方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18397031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com