繁体   English   中英

这两种解决方案中哪一种更有效? (Java Hashset)

[英]Which of these two solutions is more efficient? (Java Hashset)

我有一个充满文字的文字文件。 我想将这些单词中的每一个添加到哈希集中。 我也有一些我不想要的单词。

是否更有效:

  • (A)将所有单词添加到我想要的哈希集中,并删除最后不想要的单词的哈希集。
  • (B)检查每个单词是否在我不想要的单词的散列集中,如果是,则忽略它。 如果不是,那么将它添加到我想要的单词集中。

编辑
我想要的词比我不想要的词多得多。

答案完全取决于列表的大小。 如果你有99999个你不想要的单词和1个单词,你应该做选项A.如果你想要99999个单词,你不需要1个单词,你应该做选项B.

这背后的原因是显而易见的 - 选项B变得越来越有效,不需要的单词的散列集越小,因为您必须在使用选项B插入新单词时检查整个集合。

从纯粹的理论观点来看,两者在最坏情况时间复杂度方面是相同的,但实际上,可能存在很大差异。

基本上,与大多数解决方案一样,效率取决于您对数据结构的期望。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM