您的位置:首页 > 其它

排序

2016-08-01 20:12 211 查看
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;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: