Java中最优化的搜索算法[关闭]

问题描述 投票:0回答:1

假设我们有一个包含 10000 多个随机字符串的字符串列表。 现在我传递一个字符串说“芒果”。 我需要检查 10000+ 字符串的列表是否包含这个名为“Mango”的字符串或者不忽略大小写。 哪种特定的搜索技术将是最优化的搜索技术。

字符串可以是任意长度。该字符串甚至可能在“国家代码”、“国家/地区”、“代码”之间有一个空格。这 3 个将被视为 3 个不同的字符串。我们必须搜索整个字符串,例如搜索“国家代码”而不是字符串列表中的子字符串“代码”。

如果我们使用预定义的方法,那么最好的情况可能是 O(1)。但最坏的情况可能是 O(10000+)。

java performance search
1个回答
0
投票

根据您提供的信息,我将首先创建一个

HashSet<String>
,其中包含您的
List<String>
中所有小写字符串实例。然后你可以用 O(1) 检查你的原始列表是否包含给定的字符串(忽略大小写)通过检查集合是否包含给定字符串的小写版本。

代码示例:

    List<String> originalList = ...
    String myGivenString = ...
                            
    HashSet<String> set = new HashSet<>();
    originalList.forEach(e -> set.add(e));
       
    System.out.println(set.contains(myGivenString.toLowerCase()));
© www.soinside.com 2019 - 2024. All rights reserved.