有时候我们需要集合中的元素按照某种规则排列,这个时候就需要用到Comparator.
示例代码:
//以map示例,其实就是把map转换成list排序之后再装入LinkedHashMap
Map<String,String> map = new HashMap<String,String>();
map.put("a","1");
map.put("b","2");
List<Entry<String,String>> list = new ArrayList<Entry<String,String>>(map.entrySet());
Collection.sort(list,new Comparator<Entry<String,String>>(){
//重写compare方法
public int compare(Entry<String,String> e1, Entry<String,String> e2){
//升序
return e1.getValue().compareTo(e2.getValue);
//降序
//return e2.getValue().compareTo(e1.getValue);
}
});
Map<String,String> result = new LinkedHashMap<String,String>();
for(Entry<String,String> e : list){
result.put(e.getKey(),e.getValue);
}