问题是我从某处获得listOf_sorted_APPFiles
中的额外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
...
我希望listOf_sorted_APPFiles
和fileNames
的计数匹配,但不知何故,我得到额外的2个元素。额外添加的元素来自包含多个元素的列表。
答案 0 :(得分:0)
显然,您添加了所有元素,包括多个APPfile
,因此计数不同,但您的代码结果是预期的。请详细说明您解决的问题
答案 1 :(得分:0)
你有两个嵌套的“for”。因此,如果有时会发生多个具有相同文件名的APPfilesMapByFileName元素,则必须有更多的输出元素。
答案 2 :(得分:0)
只是一个想法,如何让listOf_sorted_APPFiles
成为TreeSet
?它将保留排序顺序,不会有重复