Collections.sort()方法对象排序
2016-07-04 17:39
423 查看
Collections.sort()方法可以对List对象进行排序,用户需要按特定属性进行排序,有两种实现方法:
1. public static <T extends Comparable<? super T>> void sort(List<T> list)
使用Collection的这个方法,需要T类的对象实现Comparable接口,如下:
class Employee implements Comparable<Employee>{
private Integer pay;
public Employee(int pay){
this.pay=pay;
}
public void show(){
System.out.println(pay);
} @Override
public int compareTo(Employee o) {
return this.pay.compareTo(o.pay);
}
} 测试一下:
public class Test{
public static void main(String[] args) {
List<Employee> list=new ArrayList<Employee>();
list.add(new Employee(22));
list.add(new Employee(1));
list.add(new Employee(233));
list.add(new Employee(12));
list.add(new Employee(165)); Collection.sort(list);
for(Employee e:list){
e.show();
}} 输出结果如下
1
12
22
165
2332.public static <T> void sort(List<T> list,Comparator<? super T> c)
class Employer{
private Integer age;
public Employer(int age) {
this.age=age;
}
public void show(){
System.out.println(age);
}
public Integer getAge(){
return this.age;
}
} 测试一下public class Test{ public static void main(String[] args) {
List<Employer> list=new ArrayList<Employer>();
list.add(new Employer(22));
list.add(new Employer(1));
list.add(new Employer(233));
list.add(new Employer(12));
list.add(new Employer(165));
Collections.sort(list,new Comparator<Employer>() {
@Override
public int compare(Employer o1, Employer o2) {
return o1.getAge().compareTo(o2.getAge());
}
});
for(Employer e:list){
e.show();
} }} 1
12
22
165
233总结:第一种方法只能按固定属性排序,后者比较灵活,但是代码稍显复杂。
相关文章推荐
- HTML精美大转盘源码
- 【基础算法】嵌套矩形
- Redis的5种数据结构
- Android 怎么实现newbility的下拉刷新和加载更多的ListView
- 菜菜买气球(codevs 2851)
- [改善Java代码]asList方法产生的List对象不可更改
- 安卓不支持keypress事件
- RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议
- Android 屏幕适配方案
- 通信组件之Intent的复杂数据的传递
- JQuery自定义搜索控件
- JAVA Script 学习之html页面中出现乱码
- Hadoop之MapReduce自定义二次排序流程实例详解
- 纯js验证代码
- MyBatis入门学习(一)
- db2存储过程
- CoordinatorLayout, AppBarLayout, CollapsingToolbarLayout使用
- UIView结构
- Eclipse中调试Android技巧
- SVG Shapes