0
我正在编写一个Java程序。利用Java中字符串数据库搜索的字母顺序
我有成千上万的列表存储为.txt文件。每个列表包含数千个单词,按字母顺序排列。每个列表中的所有单词都是不同的(没有重复)。
我必须搜索这些列表,以查看每个列表中是否存在查询词。我如何利用字母顺序来加快搜索速度?蛮力方法(.equals()
方法)运作良好,但需要几个小时。
非常感谢您的帮助!如果您也可以向我发送一些代码,我将非常感激您。
我正在编写一个Java程序。利用Java中字符串数据库搜索的字母顺序
我有成千上万的列表存储为.txt文件。每个列表包含数千个单词,按字母顺序排列。每个列表中的所有单词都是不同的(没有重复)。
我必须搜索这些列表,以查看每个列表中是否存在查询词。我如何利用字母顺序来加快搜索速度?蛮力方法(.equals()
方法)运作良好,但需要几个小时。
非常感谢您的帮助!如果您也可以向我发送一些代码,我将非常感激您。
Java提供了Arrays.binarySearch(Object[] array, Object key)
和Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)
这些方法可以改善您的结果。它们并不是最佳的解决方案,但它们易于使用,并且比蛮力更好。
你能发表这些单词的例子吗?你究竟想要搜索什么? – developer033
将每个单词添加到['HashSet'](https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html) – Nayuki
包含数千个单词的数千个文件应该可以轻松搜索在几秒钟内用'grep'。我不希望Java真的会慢很多。你能发布你的搜索代码吗? – dimo414