File bb = new File("D:\\myTemp\\xml");
Map temp = new TreeMap();
File[] files = bb.listFiles(); 
for (int i = 0; i < files.length; i++) {
temp.put(new Date(files[i].lastModified()), files[i]);
}

File[] files2 = (File[]) temp.values().toArray(new File[0]);
for (int i = 0; i < files2.length; i++) {
System.out.println(files2[i]);
}我大概写了一下试试好像是对的,你再测测看

解决方案 »

  1.   

    自己找了些資料搞定了﹗以下是我的方法﹕
    一般在定義類時﹐都內置了比較功能﹐比如說按照自然排序法則對一個數組的元素排序﹗但是這些方法並不能滿足我們的要求﹐所以我們要自己根據排序要求﹐創建一個新的對象﹐這個對象必須實現Comparator接口﹐然後將該對象作為sort的第二個參數。
    依上所述﹐我需要實現的是對數組裡的文件對象依據最後修改日期排序﹗因此我們要定義一個類﹐來完成這個功能﹗以下是源代碼﹕
    package Funove.DocAdmin;import java.io.File;
    import java.util.Comparator;public class MyFileComparator implements Comparator
    {
    private boolean case_sensitive;
    public MyFileComparator()
    {
    this(false);
    } public MyFileComparator(boolean is_case_sensitive)
    {
    case_sensitive = is_case_sensitive;
    } private int compareTimes(File f1, File f2)
    {
    long time1 = f1.lastModified();
    long time2 = f2.lastModified();
    if (time1 > time2)
    {
    return -1;
    }
    if (time1 < time2)
    {
    return 1;
    }
    return 0;
    } public int compare(Object o1, Object o2)
    {
    if( o1 == null || o2 == null )
    throw new ClassCastException("Null parameter");
    if(!(o1 instanceof File) || !(o2 instanceof File) )
    throw new ClassCastException("Parameters are not files");
    File f1 = (File)o1;
    File f2 = (File)o2;
    return compareTimes(f1, f2); }
    public boolean equals(Object o)
    {
    return getClass()== o.getClass();
    }
    public boolean isCaseSensitive()
    {
    return case_sensitive;
    }
    public void setCaseSensitive(boolean is_case_sensitive)
    {
    case_sensitive = is_case_sensitive;
    }
    }
     部份代碼參考了sun網站的實例﹗
     當然你也可以根據需要修改為你自己想要的效果﹗
      

  2.   

    怎么可能,我的程序用到treemap,在toarray肯定是自动排序的,怎么可能没有排序呢,你好好测过没有啊