gpt4 book ai didi

java - Java的快速查找

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:14 26 4
gpt4 key购买 nike

我目前有一个 String 数组,我需要多次搜索才能找到完全匹配项。最好使用什么数据结构?

Example - String array with elements

cat
dog
squirrel
raccoon
aardvark

Java 代码接收字符串搜索并遍历数组:

  1. 查询 'dogg' - 不返回任何内容
  2. 查询 'raccoon' - 返回浣熊

我当前的代码执行以下操作:

for (String element : myList) {
if (element.equals(searchTerm)) {
return searchTerm;
}
}

是否有更有效的搜索方式?我考虑过使用 Map,但我想不出一个好的值(关键是“狗”/“猫”/等....)。我应该为键和值使用相同的值吗?有没有更好的数据结构可以使用?

最佳答案

在这里使用 HashSet 以获得最佳查找性能。请注意,Set 不允许任何重复项。使用 Map 在这里没有多大意义,因为您只对搜索键感兴趣,即您没有任何关联。

示例代码:

Set<String> animals = new HashSet<String>(
Arrays.asList("cat", "dog", "squirrel", "raccoon"));
if (animals.contains("dog")) {
System.out.println("Yep, dog's here!"); // prints
}
if (!animals.contains("aardvark")) {
System.out.println("Ah, aardvark's missing!"); // prints
}

请注意,List 也有一个 contains() 方法,但它会遍历其所有元素以检查是否存在与您性能不佳的项目在使用 for 循环时要避免。

关于java - Java的快速查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17490547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com