用于对Java集合进行排序的通用比较器(List,Set)

Jul*_*lia 3 java generics collections comparator

我需要一些通用比较器,它接受List或Set的实例作为参数,并且命令方向参数(ASC,DESC),然后返回已排序的集合.我似乎无法在互联网上找到这个例子,而且是一个可怕的匆忙.我知道我不会以适当的方式提出问题,因为我没有任何代码可以开始,但我是一个可怕的匆忙.集合将包含实现可比较和日期的对象.

任何例子,实现非常赞赏.谢谢.

San*_*rma 5

Collections类有一个reverseOrder方法,它返回一个泛型类型的比较器,T它应该满足你对DESC比较器的要求.如果Collection要将Collections.sort()方法传递给方法,它会自动使用ASC排序.

此外,"排序"对于以"无序"方式维护"独特"元素的"集合"并不意味着很多(我的意思是你可以使用TreeSet排序集,但这是一个不同的故事).一个简单的解决方法是做一个List出来的Set,并通过它来Collections.sort.


jee*_*tkm 5

使用GenericComparator.java,您将能够对以下数据类型Integer,String,Long,Double,Float和Date进行排序.

对于升序

Collections.sort(persons, new GenericComparator("name", true));
Run Code Online (Sandbox Code Playgroud)

对于降序

Collections.sort(persons, new GenericComparator("name", false));
Run Code Online (Sandbox Code Playgroud)

详细信息在这里!