我有两个数据副本,这里1代表我的卷,2代表我的问题。我必须将COPY2与COPY1进行比较,找到COPY2中缺少的所有元素(COPY1始终是一个超集,COPY2可以相等或始终是其子集)。
现在,我必须在COPY2中获取缺少的卷和问题。
这样从下图(场景)中我得到的结果是:-
丢失的文件– 1-C,1-D,2-C,2-C,3-A,3-B,4,E。
题-
我应该使用哪种数据结构在Java中存储上述值(数量和问题)?
如何以最有效的方式在Java中实现此方案,以找出这两个副本之间的区别?
最佳答案
我建议使用HashSet<VolumeIssue>
。每个VolumeIssue
实例对应一个分类的问题,例如1-C
。
在这种情况下,您所需要找到的就是通话
copy1.removeAll(copy2);
copy1
剩下的是copy1
中存在的所有问题,而copy2
中没有。请注意,您的
VolumeIssue
类必须正确实现equals
和hashCode
才能起作用。