java中Comparator接口
2016-03-30 23:13
489 查看
Comparator接口:有compare(),equals()方法,用于比较对象某个属性的大小。
此时还要用到,数组,将对象 放入数组中。
利用collections.sort()方法来实现对象某个属性的比较。
collections.sort()这个方法会调用Comparator接口实现类重写的compare()方法。主要代码:
List list = new ArrayList(); /*通过调用list.add()方法,将对象放到数组里*/ ComparatorClass compare = new ComparatorClass(); Collections.sort(list,compare);
下面通过简单例子来解释:
package com.learn.notes; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * @ClassName ComparatorTest * @Description TODO * * @author XingZhaohu 1178243325@qq.com * @date 2016-3-30 下午10:05:09 */ public class ComparatorTest { /** * @Title main * @Description TODO * @param args * @return void * * @author XingZhaohu 1178243325@qq.com * @date 2016-3-30 下午10:05:09 */ public static void main(String[] args) { // TODO Auto-generated method stub Students[] students = new Students[3]; students[0] = new Students("小李子","男",19,110); students[1] = new Students("苏茉","女",18,111); students[2] = new Students("天明","男",20,112); List list = new ArrayList(); for(Students s:students) list.add(s); Compares compare = new Compares(); Collections.sort(list,compare); for(Students ss:(List<Students>)list) System.out.println(ss.toString()); } } /** * * @ClassName Person * @Description TODO * * @author XingZhaohu 1178243325@qq.com * @date 2016-3-30 下午10:40:09 */ class Person{ private String name; private String sex; private int age; public Person(String name,String sex,int age){ this.sex = sex; this.name = name; this.age = age; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public String getSex(){ return sex; } public void setSex(String sex){ this.sex = sex; } public int getAge(){ return age; } public void setAge(int age){ this.age = age; } } /** * * @ClassName Students * @Description TODO * * @author XingZhaohu 1178243325@qq.com * @date 2016-3-30 下午10:40:20 */ class Students extends Person{ private int id; public Students(String name,String sex,int age,int id){ super(name,sex,age); this.id = id; } public void setId(int id){ this.id = id; } public int getId(){ return id; } public String toString(){ return "name="+super.getName()+" sex="+super.getSex()+" age="+super.getAge()+" id="+this.getId(); } } /** * * @ClassName Compares * @Description TODO * * @author XingZhaohu 1178243325@qq.com * @date 2016-3-30 下午10:39:44 */ class Compares implements Comparator<Students>{ /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @Override public int compare(Students o1, Students o2) { // TODO Auto-generated method stub if(o1.getAge()>o2.getAge()) return 1; else if(o1.getAge()<o2.getAge()) return -1; else return 0; } }
相关文章推荐
- java 垃圾回收机制
- java SE基础(Map接口及其实现)
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- spring data jpa 操作JPA 2.0原生api
- Java 多线程实现的三种方法,附两个线程执行不同的输出
- Java SE 疑难点记录
- Java 1.7 ReentrantReadWriteLock源码解析
- Java并发编程:阻塞队列
- java学习之迭代器浅谈
- Struts1与Struts2原理 区别 详解 汇总
- 学习javaEE每一天2016.3.30
- JavaMail发送邮件
- java获取当前时间的年周月季度等的开始结束时间
- java读取配置中文乱码
- 在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等
- java通过JDBC链接SQLServer2012
- #java读书笔记#多线程3
- JAVA中的继承
- RESTful Web Services之Struts2 REST
- Spring启动容器初始化Listener