java - 让 Java 集合二分搜索返回多个值

标签 java collections binary-search

我想知道是否有任何方法可以让 Java 中的二分搜索返回一个值的多个实例。例如,我有一个项目数组列表,其中一个字段是关键字字符串数组。有没有比使用 contains() 方法的线性搜索更快的方法来按关键字检索项目并将它们存储在单独的集合中?或者通过诸如 Author 之类的字符串?

...Item...
private String[] keywords;
private String author;
...

最佳答案

您几乎肯定希望对同一个集合有不同的看法。例如,您可以:

  • 一个List<Book>所有项目的
  • 一个Multimap<String, Book>用于“按作者”查找
  • 一个Multimap<String, Book>用于“按关键字”查找(同一本书可以出现在多个条目中)

如果我写这篇文章,Multimap可能会在 Guava 中实现,但其他也可用。

当然,这是假设您确实想要避免线性扫描。您的代码需要扩展多少?

关于java - 让 Java 集合二分搜索返回多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814368/

相关文章:

java - 使用 JOptionPane 的 Java 的 If Else 语句

java - Android 应用程序递归运行命令

java - java中如何比较两个哈希集?

c# - 在集合中存储两种类型对象的类型安全方式

在 C 中将 void* 转换为 char*

java - 如何将线性搜索转换为二进制搜索?

java - 无法通过 ReSTLet StringRepresentation 类将 xml 字符串中的属性 "type"转换为 json 字符串

java.lang.ClassNotFoundException : org. slf4j.impl.StaticLoggerBinder 我什至没有登录我的依赖项

java - 哈希码实现的变化如何影响哈希集

c++ - 在 {8, 4, 6, 2} 中搜索 4 时,是否有任何 std::binary_search 的实现会返回 true?