Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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_Collections - Fatal编程技术网

Java 集合排序/枚举错误:我的排序列表中的条目太多

Java 集合排序/枚举错误:我的排序列表中的条目太多,java,collections,Java,Collections,问题是我从某处获得了额外的2个元素 Map<String, List<APPfile>> APPfilesMapByFileName = new HashMap<String, List<APPfile>>(); ... Collections.sort(fileNames, String.CASE_INSENSITIVE_ORDER); logger.debug("Sorted

问题是我从某处获得了额外的2个元素

    Map<String, List<APPfile>> APPfilesMapByFileName 
            = new HashMap<String, List<APPfile>>();

       ...

    Collections.sort(fileNames, String.CASE_INSENSITIVE_ORDER);
    logger.debug("Sorted count " + fileNames.size()); // 77

    // There will always be a list. Most of the time it will contains 
    // 1 element, but sometimes it may contains more

    for (String sortedFileName : fileNames) {
        for (APPfile a: APPfilesMapByFileName.get(sortedFileName)) {
               listOf_sorted_APPFiles.add(a);
        }
    }

    logger.debug("listOf_sorted_APPfiles count: " + 
                listOf_sorted_APPfiles.size()); // 79
       ...
映射appfilesmappbyfilename
=新HashMap();
...
Collections.sort(文件名、字符串、不区分大小写的顺序);
logger.debug(“排序计数”+文件名.size());//77
//总有一个清单。大部分时间,它将包含
//1个元素,但有时可能包含更多
用于(字符串sortedFileName:文件名){
for(appfilea:appfilesmappbyfilename.get(sortedFileName)){
已排序的应用文件列表。添加(a);
}
}
logger.debug(“已排序的应用文件列表计数:”+
_排序的_APPfiles.size());//79
...

我希望
listOf_sorted_APPFiles
fileNames
的计数能够匹配,但不知何故,我得到了额外的2个元素。额外添加的元素是来自包含多个元素的列表的元素。

显然,您添加了所有元素,包括多个
APPfile
,因此计数不同,但代码的结果是预期的。请提供有关您解决的问题的更多详细信息

您有两个嵌套的“for”。因此,如果有时APPfilesMapByFileName中有多个元素具有相同的文件名,则必须有更多的输出元素。

这只是一个想法,如何制作
已排序的\u APPFiles列表
a
树集
?它将保留排序顺序,不会重复

应用文件列表是如何初始化的?为了更快地获得更好的帮助,请在
新ArrayList
上发布一个@DanDaviesBrackett,yes,同时我赞扬社区长期以来为帮助个人所做的努力,这些问题在这个网站上没有长期价值,只会造成无用的混乱。如果出现了一个常见的问题,这是另一回事,但是“发现错误并获得一些容易的声誉”的问题对网站imo来说是不好的。@TimGee这不是一个对声誉的搜索,但我同意,这些问题太本地化了。我自己标记了它。HashMap包含一个唯一的“文件”。对于该“文件”,我们有一个对象列表。列表中的任何内容都只应添加一次,因为“文件”只循环一次。这有用吗?