比较两个String元素的最佳方法是什么List<List<String>>...
最后,我想知道它们是否包含相同的元素(true)或不包含(false)
这两个我要比较的列表:
ObservableList<List<String>> fnlData = FXCollections.observableList(new LinkedList<>());;
List<List<String>> fnlDataTMP = new LinkedList<>();
Run Code Online (Sandbox Code Playgroud)
我在论坛中搜索了已经回答的问题,但没有任何帮助我...
看起来你需要两次迭代
boolean checkEqual(List<List<String>> l1,List<List<String>> l2){
if(l1.size() != l2.size()){
return false;
}
if(l1.hashCode() != l2.hashCode()){
return false;
}
for(int i=0; i<l1.size(); i++) {
List<String> curr = l1.get(i);
List<String> comp = l2.get(i);
if(curr.size() != comp.size()){
return false;
}
if(curr.hashCode() != comp.hashCode()){
return false;
}
for(int j=0; j<curr.size(); j++) {
if(!curr.get(j).equals(comp.get(j))){
return false;
}
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
您可以改进检查 hashCode 的第一个差异的解决方案
if(l1.hashCode() != l2.hashCode()){
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果 hashCode 相等,则检查最终的深度差异
| 归档时间: |
|
| 查看次数: |
2210 次 |
| 最近记录: |