java中对集合排序的方法提供了2种方式。
这里使用的集合
final List<TestNumModel> list = new ArrayList<>();
使用的时候传入比较器
private class Sort implements Comparator<TestNumModel> { public Sort() { } public int compare(TestNumModel tl1, TestNumModel tl2) { if (tl1.getNum() < tl2.getNum()) return -1; else if (tl1.getTimePoint() > tl2.getTimePoint()) return 1; else return 0; } }
使用
Collections.sort(list,new Sort());
步骤: 比较的时候传入比较器
比较器实现的是
Comparator
compare方法有3个返回值:大于0,小于0,等于0
bean对象实现Comparable 接口
public class TestNumModel implements Comparable<TestNumModel> { ... ... ... @Override public int compareTo(TestNumModel another) { double i1 = Double.parseDouble(this.num); double i2 = Double.parseDouble(another.num); if (i1 > i2) { return 1; } else if (i1 < i2) { return -1; } else { return 0; } }
使用:
Collections.sort(list);
前提条件:集合中对象必须要实现
Comparable
接口然后实现对应的compareTo方法
compareTo方法有3个返回值:大于0,小于0,等于0
/**
* 使用 Map按key进行排序
*
* @param map
* @return
*/
public static Map<String, Person> SortMapByKey(Map<String, Person> map)
{
if (map == null || map.isEmpty())
{
return map;
}
Map<String, Person> sortMap = new TreeMap<String, Person>(new Comparator<String>()
{
@Override
public int compare(String o1, String o2)
{
return o1.compareTo(o2);
}
});
sortMap.putAll(map);
return sortMap;
}
}