我试图优化一段比较列表元素的代码
例如
公共作废比较(设置<;记录>;第一组,设置<;记录>;第二组){
用于(记录firstRecord:firstSet){
用于(记录第二个记录:第二组){
//比较逻辑
}
}
}
请考虑到成套记录的数量将很高
谢谢
谢哈尔
firstSet.equals(secondSet)
这真的取决于你想在比较逻辑中做什么。。。如果在一个集合中发现一个元素而不是在另一个集合中,会发生什么?您的方法有一个void返回类型,因此我假设您将在该方法中执行必要的工作
更细粒度的控制(如果需要):
如果(!firstSet.containsAll(secondSet)){
//必要时做点什么
}
如果(!secondSet.containsAll(firstSet)){
//必要时做点什么
}
如果需要获取一个集合中的元素而不是另一个集合中的元素。
编辑:set.removeAll(otherSet)返回布尔值,而不是集合。要使用removeAll(),必须先复制集合,然后再使用它
Set one=新哈希集<&燃气轮机;(第一套);
Set two=新哈希集<&燃气轮机;(第二套);
一、拆除所有(第二套);
二、拆除所有(第一套);
如果one和two的内容都是空的,那么您就知道这两个集合是相等的。如果不是,那么你就得到了使集合不相等的元素
您提到记录的数量可能很高。如果底层实现是一个HashSet,那么每个记录的获取都是在O(1)时间内完成的,因此您不会得到比这更好的结果树集是O(日志n)