当前位置: 首页 > 知识库问答 >
问题:

从两个不同的ArrayList中找到唯一交集的最有效方法?

卫高明
2023-03-14

我有两个Arraylist,A和B。

ArrayList B由不同的类组成,这些类包含不同的数据集,包括categoryIDcategoryID对此列表中的每个项都是唯一的。示例:[1,2,3,4,5,6,7]

这两个列表都按categoryID进行排序,希望这样做更容易。

我要做的是创建一个新的列表C,它由listB中至少与Lista有一个交集的项组成。因此列表C应该包含上述给定输入的[1,2,3,4,7]项。

ArrayList<classB> results = new ArrayList<classB>();
for (classA itemA : listA){
  int categoryID = item.categoryID;
  for (classB itemB : listB){
    if (itemB.categoryID == categoryID){
      if (!results.contains(itemB)){
        results.add(itemB);
      }
      break;
    }
  }
}

共有1个答案

邓元白
2023-03-14

将ListA中的所有categoryIDs添加到集合,我们将其称为setacategories。然后,遍历ListB,如果setacategories包含ListB中某个元素的categoryID,则将该ListB元素添加到results中。

results也应该是,因为看起来您只希望从listB中的一个匹配进入results而不是多个匹配(允许您避免调用(!results.contains(itemB))

 类似资料:
  • 问题内容: 我有一套清单: 我要s1∩s2∩s3 … 我可以编写一个函数来执行一系列成对的操作,等等。 有没有推荐,更好或内置的方法? 问题答案: 从python版本2.6开始,您可以对使用多个参数,例如 如果这些集合在列表中,则表示为: 这里是列表扩展 请注意,是 不是 一个静态的方法,但这种使用功能符号应用第一套交叉口列表的其余部分。因此,如果参数列表为空,则将失败。

  • 我找不到任何关于数学交换和堆栈溢出的问题来回答这个特定问题。这是我发现的最相似的问题,但这个问题构造得太差,答案完全不充分。 我尝试过在谷歌上寻找无济于事。我确实发现了这一点,但这个公式似乎效率低下,因此不够。例如,如果我们取数字21... 现在想象一下找到远大于21的数字的共同因素,例如2,252和4,082...上述方法没有任何效率。 我想做的是找出最有效的方法来找到任何两个数字的所有公因数。

  • 让0 我想找到曲线相交的点“x”。我不想找到f和g的交点。我可以通过以下方法简单地找到:

  • 我写了一个代码来检查两个列表之间的交集。我只需要有交集。有没有更快的方法。

  • 这是一个算法问题。如果我错过了Python中任何有帮助的现有函数,请大喊一声。 给定一组元素的,我们可以在Python中使用函数来找到所有唯一的k元素子集。让我们调用包含所有这些子集的集合。请注意,每个这样的子集都有不同的元素。 问题是两步走。首先,给定这些k-不同元素子集,我想组合(其中的一些),这样(组合只是一些子集的超集): > 构图中任意两个子集之间的交集为空 构图中所有子集的并集给出的正

  • 假设你有一个长度为n的二进制向量(每个元素可以是0,1或X,对应于0或1)。 例如,给定N=4: 1001是单个二进制向量1XX1表示四个不同的二进制向量{1001,1011,1101,1111} 现在假设你有三种不同的描述,例如 X11X 1XX1 11XX 找到这组规范描述的唯一二进制向量的数量的有效解决方案是什么? 请注意,当N增长时,蛮力解决方案变得不切实际,因此列出所有可能的向量并删除重