Java 集合排序/枚举错误:我的排序列表中的条目太多
问题是我从某处获得了额外的2个元素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
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包含一个唯一的“文件”。对于该“文件”,我们有一个对象列表。列表中的任何内容都只应添加一次,因为“文件”只循环一次。这有用吗?