Java利用Comparator与Collections.sort对List排序
2014-03-31 23:59
471 查看
如果List<Object>中Object实现了Comparator接口,便可以直接用以下的方式对List进行排序
如List<String> list,通过list.add("abc")等操作为list添加了一些元素,通过以下代码即可完成排序:
Collections.sort(list)
由于使用了默认的排序规则,所以sort只传入了list这一个参数,但这确实过于局限了,为了是比较更多样化(比较的类多样化或比较方式多样化),可以通过自定义比较类,让其声明Comparator接口,然后重新其中的compare方法即可:
在需要排序的地方,对list进行如下操作即可(list类型为List<Map<String, Object>>):
如List<String> list,通过list.add("abc")等操作为list添加了一些元素,通过以下代码即可完成排序:
Collections.sort(list)
由于使用了默认的排序规则,所以sort只传入了list这一个参数,但这确实过于局限了,为了是比较更多样化(比较的类多样化或比较方式多样化),可以通过自定义比较类,让其声明Comparator接口,然后重新其中的compare方法即可:
package comXXX; import java.util.Comparator; import java.util.Map; public class ComparatorMap implements Comparator{ public int compare(Object arg0, Object arg1) { Map<String, Object> map1 = (Map<String, Object>)arg0; Map<String, Object> map2 = (Map<String, Object>)arg1; String map1String = (String) map1.get("filename"); String map2String = (String) map2.get("filename"); return (map1String.toLowerCase()).compareTo(map2String.toLowerCase()); } }程序很简单,类ComparatorMap声明了Comparator接口,故需要实现compare方法。compare方法需要传入两个比较的对象,这里以Map为例(故list中存储的是Map类型的数据)。比较Map中的key值为filename的变量的大小,返回比较结果即可。
在需要排序的地方,对list进行如下操作即可(list类型为List<Map<String, Object>>):
ComparatorMap comparator=new ComparatorMap(); Collections.sort(list, comparator);comparator即为你的自定义比较类,其中有compare方法定义了比较规则。将comparator做为参数传入Collections.sort方法,便可以按照你自定义的规则对List中元素进行排序操作了
相关文章推荐
- 【Java】如何给List集合排序Collections.sort(list,new Comparator<Entity>)
- 使用Collections.sort(List<T>,Comparator<? super T>)给List<String>排序(一)
- Java中应用Collections工具类的Sort()方法对List进行排序
- Java List排序『Collections.sort()比较对List排序』
- java Collections.sort()实现List排序的默认方法和自定义方法
- 利用Collator和Collections.sort对list进行中文排序,注意与Arrays.sort的区别
- java Collections.sort() 对 List 排序
- java List 排序 Collections.sort() 对 List 排序
- Java Collections.sort方法对list集合排序
- java Collections.sort()实现List排序的默认方法和自定义方法
- java List 排序 Collections.sort() 对 List 排序
- [java]_[Collections.sort()实现List排序]
- java List 排序 Collections.sort() 对 List 排序
- Java Collections.sort方法对list集合排序
- java.util.Collections.sort(List list)与Comparable,Comparator
- java List 排序 Collections.sort() 对 List 排序
- java List 排序 Collections.sort() 对 List 排序
- JAVA中Collections.sort()实现List排序的公共方法和自定义方法
- java List 排序 Collections.sort() 对 List 排序
- 用Java集合中的Collections.sort方法如何对list排序(两种方法)