gpt4 book ai didi

java - 如何避免时间复杂度O(n^2)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:55 26 4
gpt4 key购买 nike

我有下面这段代码:

for(ArticleBasketInBean basketBean : bean.getBasket()) {
for(ArticleDTO article : dto.getArticleList()) {
if(basketBean.getArticleReference().equals(article.getArticleReference())) {
article.setAddedToBasket(true);
}
}
}

显然上述操作的时间复杂度是O(n^2)。对于这种情况,articleReference 是唯一的。所以 bean.getBasket() 返回的列表没有重复的 articleReference,对于 dto.getArticleList() 返回的列表也是如此.

我想避免这种嵌套迭代并希望编写更快的代码。我该怎么做?

最佳答案

使用 java.util.HashSet 来缓存其中一组引用,当然前提是这些引用集不是太大。有了一个好的散列函数,这应该会让你回到 O(n)。

关于java - 如何避免时间复杂度O(n^2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121414/

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