Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二维数据结构的比较-简化和更快?_Java_Algorithm_Performance - Fatal编程技术网

Java 二维数据结构的比较-简化和更快?

Java 二维数据结构的比较-简化和更快?,java,algorithm,performance,Java,Algorithm,Performance,如何简化和加快以下代码 这是二维数据结构的比较。多个文件夹,每个文件夹包含文件,与其他文件夹相比 ArrayList<FolderGroup> userFolders = CommonFunctions.getUserFolders(); if (!userFolders.isEmpty()) { for (FolderGroup userFoldersGroup : userFolders) { for (FolderGroup publicFoldersG

如何简化和加快以下代码

这是二维数据结构的比较。多个文件夹,每个文件夹包含文件,与其他文件夹相比

ArrayList<FolderGroup> userFolders = CommonFunctions.getUserFolders();
if (!userFolders.isEmpty()) {
    for (FolderGroup userFoldersGroup : userFolders) {
        for (FolderGroup publicFoldersGroup : publicGroupsList) {
            if (userFoldersGroup.getName().equals(publicFoldersGroup.getName())) {
                for (File publicFile : publicFoldersGroup.getFiles()) {
                    for (File userFile : userFoldersGroup.getFiles()) {
                        if (publicFile.contains(userFile)) {
                            publicFile.setIsDownloaded(true);
                            userFoldersGroup.setDownloadedCount();
                        }
                    }
                }
            }
        }
    }
}
ArrayList userFolders=CommonFunctions.getUserFolders();
如果(!userFolders.isEmpty()){
用于(FolderGroup用户FoldersGroup:userFolders){
对于(FolderGroup publicFoldersGroup:publicGroupsList){
if(userFoldersGroup.getName().equals(publicFoldersGroup.getName())){
对于(文件publicFile:publicFoldersGroup.getFiles()){
对于(文件userFile:userFoldersGroup.getFiles()){
if(publicFile.contains(userFile)){
publicFile.setisdownload(true);
userFoldersGroup.setDownloadedCount();
}
}
}
}
}
}
}

如果则最外面的
无效,因为不管怎样,当
用户文件夹
为空时,最外面的循环将立即终止而不进行迭代

除此之外,我不认为总体复杂性可以降低。但是,通过提取具有有意义名称的方法,可以使代码更易于理解


要获得更高的速度,可以做的是使用允许使用更少嵌套循环的数据结构。例如,如果可以按文件夹组名称查询另一个文件夹组集合,则只需迭代其中一个文件夹组集合。标准库附带了一些允许此类查询并实现()的集合类。

您实际上想做什么?您想检查\查找什么?为什么此代码不充分?你用过档案器吗?我比较文件夹中的文件。检查两个不同文件夹中是否存在相同的文件。同时我有两个文件夹数组。@durron597这就足够了,但我想要一个更优雅的解决方案。为什么你想要一个更优雅的解决方案?是否存在实际性能问题?是为了美学吗?您是否发现嵌套循环在某种程度上无法维护?我真正想说的是,除非你给我们一个具体的问题来解决,否则很难帮助你改进代码。