2011-12-28 30 views
0

問題太多的條目是我從某處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_APPFilesfileNames數相匹配,但不知何故,我得到額外的2個元素。額外添加的元素是來自包含多個元素的列表的元素。

+0

listOf_sorted_APPFiles如何初始化? – 2011-12-28 22:50:05

+1

爲了儘快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2011-12-28 22:53:15

+0

@DanDaviesBrackett,是爲'新的ArrayList ' – JAM 2011-12-28 22:53:48

回答

0

你有兩個嵌套的「爲」。因此,如果有時會出現具有相同文件名的APPfilesMapByFileName的多個元素,則必須具有更多輸出元素。

+0

我迷茫自己。謝謝 – JAM 2011-12-28 23:08:22

0

顯然,你添加的所有元素,包括多個APPfile因此計數不同,但你的代碼的結果預期。請提供有關該問題的詳細信息您解決

+0

HashMap包含1個唯一的「文件」。對於那個「文件」,我們有一個對象列表。無論在該列表中,只應該添加一次,因爲「文件」僅循環一次。這有幫助嗎? – JAM 2011-12-28 22:52:48

0

只是一個想法,怎麼樣使listOf_sorted_APPFiles一個TreeSet?它將保留排序順序,不會有重複