gpt4 book ai didi

java - 如何计算效率列表中有多少个元素相同?

转载 作者:行者123 更新时间:2023-12-01 14:32:46 25 4
gpt4 key购买 nike

我需要执行以下任务:

  • 我有一个包含项目的列表。
  • 每个项目还有一个列表,其中包含“gkejgueieriug”等字符串
  • 现在我需要运行 throw the list 并检查每个项目的列表中有多少项目也在当前元素中

这是一个小伪代码:

OneItem;
List AllItems;
for Item in AllItems:
int count = number strings in Item.Values which are also in OneItem.Values

因为数据非常大,我需要一些帮助来进行有效的实现。

如何做到这一点?我应该使用 HashMap 吗?如何计算重叠部分?

最佳答案

您的问题没有提供您想要比较的涉及类型的详细信息。所以我假设你有一个 List<Item> 。每个项目都有一个 String和一个自己的List<Item>

所以首先我会创建一个 HashSet StringItems 的 s在你的AllItems -列表。迭代AllList并添加每个 Item 的字符串到HashSet 。然后在第二步中迭代 AllList再次迭代ListItem s 并检查这里的每个字符串是否在之前创建的 HashSet 中。

如果您必须多次检查此项,您可以将 HashSet 保留为缓存,当 AllList 时刷新该缓存。发生变化。

// Step 1: Create Set of Strings
Set<String> allStrings = new HashSet<String>();
for (Item item : allList) {
allStrings.add(item.getString());
}

// Step 2: Calculate occurrences
for (Item item : allList) {
for (Item internalItem : item.getItems()) {
if (allStrings.contains(internalItem.getString()) {
// Count one up for this String
// This might be done by replacing the HashSet by a HashMap and use its values for counting
}
}
}

关于java - 如何计算效率列表中有多少个元素相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16731125/

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