Collections排序问题!!
我利用TreeMap来对一个指定的文件夹中的文件进行按日期,大小,名称来排序,但是其中发现一个问题:如果其中有相同大小的或是相同修改时间的文件的话,那么程序只打印出其中的一个文件,其它相同大小或是相同修改时间的文件却没了。
哪位大哥有没有好点的解决办法?
(我想用List做,可是没想出来。。;()
我利用TreeMap来对一个指定的文件夹中的文件进行按日期,大小,名称来排序,但是其中发现一个问题:如果其中有相同大小的或是相同修改时间的文件的话,那么程序只打印出其中的一个文件,其它相同大小或是相同修改时间的文件却没了。
哪位大哥有没有好点的解决办法?
(我想用List做,可是没想出来。。;()
你看看map的定义:A map cannot contain duplicate keys; each key can map to at most one value.
不能有重复的key
用File的listFiles() method返回一个File[]
然后写一个针对File的时间和大小的Comparator,再调用Arrays的
sort(Object[] a, Comparator c)
就可以把File[]排序完毕了
对 写一个Comparator
相同值返回不要为0就可以。
参见我的一篇文章:
http://www.jdon.com:81/jive/article.jsp?forum=16&thread=262
相同值返回为什么不要为0?
作为一种稳定的排序方法,主键相同的元素在排序前后的次序应该是不变的
所以Comparator应该返回0.
为0就出现你提的问题的情况,相同的只有一个出来,其它没有了
Comparator是对数组进行排序,和楼主说的那种情况不一样的
排完以后数组里的元素不会少的.