当前位置: 首页 > 面试题库 >

检查列表是否最快的方法 包含唯一的字符串

蒋昊天
2023-03-14
问题内容

基本上,我大约有1,000,000个字符串,对于每个请求,我都必须检查一个String是否属于列表。

我担心性能,最好的方法是什么?ArrayList?哈希?


问题答案:

最好的选择是使用HashSet并通过contains()方法检查集合中是否存在字符串。建立HashSet可以通过使用Object方法hashCode()和进行快速访问equals()HashSet状态的Javadoc

此类为基本操作(添加,删除,包含和调整大小)提供了恒定的时间性能

HashSet
将对象存储在哈希存储桶中,也就是说,该hashCode方法返回的值将确定对象存储在哪个存储桶中。通过这种方式,HashSet通过该equals()方法必须执行的相等检查数量减少为仅其他对象相同的哈希桶。

为了有效地使用HashSets和HashMaps,必须符合javadoc中概述的equalshashCode合同。在这些方法的情况下已经实现了这一目的。java.lang.String



 类似资料:
  • 问题内容: 我有一个清单: 并要搜索包含字符串“ abc”和“ def”(以及其他错误的字符串)的项目。我怎样才能做到这一点? 这里几乎是同样的问题。 问题答案: 如果只需要测试,请将目标列表连接到字符串中,然后像这样测试每个元素: 从您的问题中,您可以通过以下方式将每个元素作为子字符串相对于另一个元素的子字符串进行测试: 它非常快(与其他方法之一相比): 从您的评论中,您可以找到不匹配的元素:

  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 问题内容: 我正在处理JavaScript的性能问题。所以我只想问:检查一个字符串是否包含另一个子字符串的最快方法是什么(我只需要布尔值)?您能否提出您的想法和示例代码片段? 问题答案: 您有两个可能性: 正则表达式: // or /word/.test(str) : 更新: 不能肯定地说哪种方法更快。浏览器之间的差异是巨大的。虽然在Chrome 10中似乎更快,但在Safari 5 中显然比任何

  • 问题内容: 我有一个的条目: 目前,我正在检查它是否包含真像这样: 这是检查布尔数组的 最快 方法吗?如果不是,执行此检查的最快方法是什么? 编辑: 通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示: 在五次跑步中的时间排名最高,排名第一: 在5334和11584 ns之间: } return false; 在160542和1

  • 本文向大家介绍检查列表是否包含Python中的所有唯一元素,包括了检查列表是否包含Python中的所有唯一元素的使用技巧和注意事项,需要的朋友参考一下 python中的列表可以包含所有元素,这些元素可能是唯一的,也可能不是唯一的。但是对于需要特殊元素的情况,例如标记班级不同卷号的出勤率。以下是可以使用的方法。 用 python集是无序,未索引且还包含唯一元素的集合。因此,我们将比较从列表创建的集合

  • 下面是我要做的:我有一些,如果列表包含特定字符串,我想打印一条语句,否则抛出一个异常,但当我尝试以下代码时 它遍历列表,在处,它显然找到“apple”,并立即转到块并抛出异常。我也试过下面的,但这也不起作用。 有没有一个简单的方法来做我想做的事情?