如何形成从HashMap中提取的有序值列表?

dar*_*man 0 java iterator hashmap

我的问题实际上比问题所暗示的更微妙,但是想要保持标题简短.

我有一个HashMap<String, File>File对象作为值.键是String name作为File实例一部分的字段.我需要迭代它中的值HashMap并将它们作为单个返回String.

这就是我目前所拥有的:

private String getFiles()
{   
    Collection<File> fileCollection = files.values();
    StringBuilder allFilesString = new StringBuilder();

    for(File file : fileCollection) {
        allFilesString.append(file.toString());
    }
    return allFilesString.toString();
}
Run Code Online (Sandbox Code Playgroud)

这样做,但理想情况下我希望将单独的FileStringBuilder按顺序附加到int fileID,这是File类的一个字段.

希望我已经说清楚了.

Tof*_*eer 6

这样的事情应该有效:

List<File> fileCollection = new ArrayList<File>(files.values());

Collections.sort(fileCollection, 
                 new Comparator<File>() 
                 {
                     public int compare(File fileA, File fileB) 
                     {
                         final int retVal;

                         if(fileA.fileID > fileB.fileID)
                         {
                             retVal = 1;
                         }
                         else if(fileA.fileID < fileB.fileID)
                         {
                             retVal = -1;
                         }
                         else
                         {
                             retVal = 0;
                         }

                         return (retVal);                         
                     }
                 });
Run Code Online (Sandbox Code Playgroud)