我想知道是否有任何方法可以让 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/