有这样的情况。有两个列表:list1
asList(of intger)
和list2
asList(of intger)
。
我需要删除列表1中与列表2中的项目相同的所有项目。
例如:
list1 = 0, 1, 2, 3, 6, 10
list2 = 3, 6
从list1中删除list2后:list1 = 0, 1, 2, 10
。
list1 = list1.Except(list2).ToList();
list1.RemoveAll(Function(i) list2.Contains(i))
或者只是和代表在一起
list1.RemoveAll(AddressOf list2.Contains)
正如Meta Knight所指出的,如果list2
只是一个查找列表,无论如何都不能包含重复项,那么最好使用HashSet(Int32的)
。它有一个O(1)
查找复杂度,这与它的大小无关,如果你还需要list2
,它的缺点是需要更多内存。
您可以轻松创建一个:
Dim setOfNums = new HashSet(Of Int32)(list2)
list1.RemoveAll(AddressOf setOfNums.Contains)
问题内容: 我想从列表中删除重复项,但我无法正常工作: 问题答案: 如果该代码不起作用,则可能是你未在该类上正确实现。 大概有一些钥匙(我们称之为)可以唯一地标识一个客户。例如 的适当定义equals(Object)如下所示: 为了完整起见,你还应该实现hashCode两个Customer相等的对象将返回相同的哈希值。hashCode上述定义的匹配项为equals: 还值得注意的是,如果列表很大,
实际上,我知道如何减少重复的,或者将分配给,但我有一个不同的问题。如何在Java8中使用stream或者可能是来解决以下智能方式的问题? 假设列表中有一个对象
我要根据列表中项目的属性(邮件)从列表中删除重复项。 我执行了以下操作:
问题内容: 如果想基于每个嵌套列表的第一个元素评估重复项,谁能提出一个好的解决方案从嵌套列表中删除重复项? 主列表如下所示: 如果已经在第一位置出现了另一个具有相同元素的列表,那么我想删除该列表并得到以下结果: 您可以建议一种算法来实现此目标吗? 问题答案: 您是否关心保留订单/删除了哪些重复项?如果不是,则: 会做的。如果您想保留订单并想保留第一个订单,则:
我有一本这样的字典: 我怎么才能把匕首从上面取下来? 我试过这个: 或 但它犯了这个错误:
我需要从String的ArrayList中删除重复项,而不考虑大小写。对于情商: 上面的不会提供任何帮助,因为它工作在将返回false的equals方法上。有没有其他方法可以做以下事情: