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

最快的方法是什么来找到两个列表之间是否有交集?

司徒光霁
2023-03-14

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

L,L2 are List<int>

bool working = true;

bool ok=false;
for (int k = 0; k<L.Count && working;k++) {
   if (L2.Any (a => a == L[k])) {
      ok=true;//There is an integer in L and   L2
      working=false;
   }
}

共有1个答案

钱嘉致
2023-03-14

不确定我是否忽略了什么,但通常使用intersect+any:

bool intersects = L.Intersect(L2).Any();

如果列表中的类型重写equalsgethashcode(就像大多数.NET类所做的那样),则此操作有效。如果您使用自己的,您应该记住这一点,否则只会比较引用。

 类似资料:
  • 有没有一种通用的方法来获取Java中两个列表的交集? 我想有一个方法,可以找到列表1和列表2中包含的元素,无论列表中的元素是字符串、Long、整数还是BigDecimal类型。 我试图通过下面的代码来实现这一点,这些代码可以正常工作,直到两个参数都包含相同类型的元素,否则它在运行时返回一个空列表。 调用intersect方法的代码: 列表中包含不同类型元素的示例输出: 问题:是否有任何方法可以强制

  • 不允许使用任何导入。 输入: 所需输出: 我在找一个简洁的方法。我知道如何用多行for循环来解包它。

  • 问题内容: 用Java连接两个String的最快方法是什么? 即 我在中使用它作为键,并且在一个非常紧密的循环中调用它来检索值。 当我分析时,这就是瓶颈 问题答案: 这些例程出现在基准测试中的原因是因为这是编译器在幕后实施“ +”的方式。 如果您确实需要连接的字符串,则应让编译器以“ +”号表示神奇。如果你都需要对地图查找一个键,一键类控股与合适的两个字符串,并因为它避免了复制步骤的实现可能是一个

  • 问题内容: 我需要对照事务性归档表检查活动表,但我不确定执行此操作的最快方法… 例如,假设我的活动表由以下各列组成: Term CRN Fee Level Code 我的存档表将具有相同的列,但也具有存档日期,因此我可以看到活动表在给定日期具有的值。 现在…我将如何编写查询以确保活动表的值与存档表中的最新条目相同? PS我更愿意在SQL中处理此问题,但是PL / SQL如果速度更快,也是一种选择。

  • 问题内容: 复制列表的最佳方法是什么?我知道以下方法,哪种更好?还是有另一种方法? 问题答案: 如果要浅拷贝(不复制元素),请使用: 如果要进行深层复制,请使用复制模块: