两种方式,一种是要比较的元素实现Comparable接口,另一种是实现Comparator接口创建一个比较器
1、Comparator
/**
* Created by liuquan on 2018/7/8.
*/
public class BaseEntity {
//排序字段
public int sort;
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
@Override
public String toString() {
return "BaseEntity{" +
"sort=" + sort +
'}';
}
}
/**
* Created by liuquan on 2018/7/8.
*/
public class ComparatorSortBySort implements Comparator<BaseEntity> {
@Override
public int compare(BaseEntity o1, BaseEntity o2) {
if(o1.getSort() > o2.getSort()) {
return 1;
}else if(o1.getSort() < o2.getSort()) {
return -1;
}else {
return 0;
}
}
}
用法
Collections.sort(list, new ComparatorSortBySort());
结果
[BaseEntity{sort=7}, BaseEntity{sort=4}, BaseEntity{sort=0}, BaseEntity{sort=9}, BaseEntity{sort=5}, BaseEntity{sort=8}, BaseEntity{sort=3}, BaseEntity{sort=1}, BaseEntity{sort=6}, BaseEntity{sort=2}]
[BaseEntity{sort=0}, BaseEntity{sort=1}, BaseEntity{sort=2}, BaseEntity{sort=3}, BaseEntity{sort=4}, BaseEntity{sort=5}, BaseEntity{sort=6}, BaseEntity{sort=7}, BaseEntity{sort=8}, BaseEntity{sort=9}]
Process finished with exit code 0
2、Comparable
/**
* Created by liuquan on 2018/7/8.
*/
public class BaseEntity implements Comparable<BaseEntity> {
//排序字段
public int sort;
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
@Override
public String toString() {
return "BaseEntity{" +
"sort=" + sort +
'}';
}
@Override
public int compareTo(BaseEntity o) {
if (this.getSort() > o.getSort()) {
return -1;
} else if (this.getSort() < o.getSort()) {
return 1;
} else {
return 0;
}
}
}
用法
Collections.sort(list);
结果
[BaseEntity{sort=7}, BaseEntity{sort=4}, BaseEntity{sort=0}, BaseEntity{sort=9}, BaseEntity{sort=5}, BaseEntity{sort=8}, BaseEntity{sort=3}, BaseEntity{sort=1}, BaseEntity{sort=6}, BaseEntity{sort=2}]
[BaseEntity{sort=9}, BaseEntity{sort=8}, BaseEntity{sort=7}, BaseEntity{sort=6}, BaseEntity{sort=5}, BaseEntity{sort=4}, BaseEntity{sort=3}, BaseEntity{sort=2}, BaseEntity{sort=1}, BaseEntity{sort=0}]
Process finished with exit code 0
本文介绍了Java中两种常用的排序方法:通过实现Comparable接口和Comparator接口。详细展示了BaseEntity类如何通过这两种方式实现排序,并提供了具体的代码示例及使用方法。
1137

被折叠的 条评论
为什么被折叠?



