我目前正在编写一个程序,该程序需要比较可变大小的 ArrayList 中的每个文件。现在,我这样做的方式是通过嵌套代码循环:
if(tempList.size()>1){
for(int i=0;i<=tempList.size()-1;i++)
//Nested loops. I should feel dirty?
for(int j=i+1;j<=tempList.size()-1;j++){
//*Gets sorted.
System.out.println(checkBytes(tempList.get(i), tempList.get(j)));
}
}
我已经阅读了一些关于嵌套循环必要性的不同意见,我想知道是否有人有更有效的选择。
乍一看,无论哪种方式,每次比较都需要进行,因此性能应该相当稳定,但我有一定的信心有一种更清洁的方法可以做到这一点。任何指针?
编辑:: 为清楚起见,这只是功能的一部分。文件已根据长度进行比较并放入存储桶中 - 在通过集合的映射并找到长度大于 1 的存储桶后,它会运行它。所以 - 这些都是相同大小的文件。在获取字节之前,我也会进行校验和比较,但现在我只是想清理循环。
此外,圣牛这个网站反应很快。多谢你们。
EDIT2:: 抱歉,为了进一步澄清:我认为文件处理部分我已经很好地掌握了 - 首先,我按长度比较和排序,然后按校验和,然后按字节 - 我遇到的问题是如何正确处理需要有效地比较 ArrayList 中的所有文件,假设它们都需要进行比较。如果嵌套循环就足够了,那很酷,我只是想检查一下这是否是一种合适的方法,按照惯例。