首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:检查字符串是否在单词列表中的最有效方法

Java:检查字符串是否在单词列表中的最有效方法
EN

Stack Overflow用户
提问于 2013-09-06 12:52:25
回答 8查看 5K关注 0票数 4

我有一个字符串数组String[] words和一个28000字单词列表.

我想检查字符串数组的任何成员是否在WordList中( word-list位于文本文件wordlist.txt中)。

在这方面,最有效的方法是什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-09-06 12:54:27

将字符串直接放置到HashSet<String>中,而不是数组中,并使用集合上的contains遍历文件以检查内容。您将不会改进O(1)访问。如果存在任何重复项,这也将模拟用于存储Strings的内存。

票数 9
EN

Stack Overflow用户

发布于 2013-09-06 13:02:00

您可以尝试数组(树)后缀算法,但是您需要实现,如下所示:

使用后缀树的字符串中最长回文

票数 2
EN

Stack Overflow用户

发布于 2013-09-06 13:03:11

步骤1:不要使用字符串数组。而不是使用HashSet。

Step2:将文件(即wordlist.txt)内容加载到另一个HashSet中

Step3:

代码语言:javascript
复制
Set<String> set1 = new HashSet<String>(); //Load the string array into set
    Set<String> set2 = new HashSet<String>(); //load the file contents into set
    for (String str : set1) {
        for (String str2 : set2) {
            if (str.equalsIgnoreCase(str2)) {
                break;
            }
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18658315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档