小编KGV*_*GVT的帖子

替代嵌套循环进行比较

我目前正在编写一个程序,需要比较可变大小的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)));
                }
            }
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些关于嵌套循环必要性的不同意见,我想知道是否有人有更高效的替代方案.

乍看之下,无论哪种方式都需要进行每次比较,因此性能应该相当稳定,但我还是有点确信有一种更清洁的方法可以做到这一点.有什么指针吗?

编辑::为清晰起见,这只是功能的一部分.这些文件已根据长度进行比较并放入存储桶中 - 在浏览完集合的映射后,找到一个长度大于1的存储桶,它会运行它.所以 - 这些都是相同大小的文件.在我得到字节之前,我将进行校验和比较,但是现在我只是想清理循环.

此外,圣母这个网站反应迅速.多谢你们.

EDIT2 ::对不起,为了进一步说明:文件处理部分我有一个很好的把握,我认为 - 首先,我按长度进行比较和排序,然后通过校验和,然后按字节 - 我的问题是如何正确处理需要有效地比较ArrayList中的所有文件,假设它们都需要进行比较.如果一个嵌套循环就足够了,那很酷,我只想检查这是一个合适的方法,按惯例.

java loops nested nested-loops

5
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

loops ×1

nested ×1

nested-loops ×1