2016-02-29 28 views
0

我正在编写一个Java程序。利用Java中字符串数据库搜索的字母顺序

我有成千上万的列表存储为.txt文件。每个列表包含数千个单词,按字母顺序排列。每个列表中的所有单词都是不同的(没有重复)。

我必须搜索这些列表,以查看每个列表中是否存在查询词。我如何利用字母顺序来加快搜索速度?蛮力方法(.equals()方法)运作良好,但需要几个小时。

非常感谢您的帮助!如果您也可以向我发送一些代码,我将非常感激您。

+0

你能发表这些单词的例子吗?你究竟想要搜索什么? – developer033

+0

将每个单词添加到['HashSet'](https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html) – Nayuki

+0

包含数千个单词的数千个文件应该可以轻松搜索在几秒钟内用'grep'。我不希望Java真的会慢很多。你能发布你的搜索代码吗? – dimo414

回答

1

Java提供了Arrays.binarySearch(Object[] array, Object key)Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)这些方法可以改善您的结果。它们并不是最佳的解决方案,但它们易于使用,并且比蛮力更好。