普通java类(排序)实现Comparable接口重写CompareTo方法
2016-05-20 00:00
561 查看
普通的类要实现排序,必须实现Comparable接口,并重写CompareTo()方法。
测试类按照某属性进行排序输出:
package test; public class Field implements Comparable<Field> { private String name; private int age; public Field() { } public Field(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Field o) { // 先按age排序 if (this.age > o.getAge()) { return (this.age - o.getAge()); } if (this.age < o.getAge()) { return (this.age - o.getAge()); } // 按name排序 if (this.name.compareTo(o.getName()) > 0) { return 1; } if (this.name.compareTo(o.getName()) < 0) { return -1; } return 0; } }
测试类按照某属性进行排序输出:
package test; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Test2 { public static void main(String[] args) { Field f1 = new Field("tony", 11); Field f2 = new Field("jack", 11); Field f3 = new Field("tom", 11); Field f4 = new Field("jason", 44); List<Field> list = new ArrayList<Field>(); list.add(f1); list.add(f3); list.add(f4); list.add(f2); Collections.sort(list); for (Field o : list) { System.out.println(o.getAge() + "-->" + o.getName()); } } }
相关文章推荐
- Eclipse在异常关闭后 无法启动 也没有报错信息
- Eclipse debug时 鼠标移动到变量时 自动显示变量只
- java遍历集合
- Java Web项目中读取
- Java程序优化细节
- Spring 实现国际化
- java字符集&编码问题
- 个人总结之Eclipse关联SVN
- java运行程序时设置参数
- 如何给struts2传递对象值,含数组
- uri异常,java.net.URISyntaxException
- Thinking in Java学习笔记,可以被Future.cancel()中断的资源
- Vert.x源码-创建集群
- java反射
- 如何在Ember2.0及以上版本模板中使用script标签
- JAVA CONCURRENCY EXECUTORS 介绍Java并发处理线程池
- 关于遍历删除集合中的元素
- GC中的对象自救
- java.util.concurrent.locks与synchronized及其异同
- spring boot 关于资源的一般配置(二)