PresonDemo

package cn.stat.p5.person.demo;

public class PresonDemo implements Comparable  {

    private String name;
private int age; /**
* @param args
*/ 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;
} public void outPrint()
{ System.out.println(this.age+".."+this.name);
}
public PresonDemo(String name, int age) { this.name = name;
this.age = age;
}
//TreeSet();为空时,实列类内部比较器
@Override
public int compareTo(Object o) {
// TODO Auto-generated method stub
PresonDemo p=(PresonDemo)o;
if(p.age<this.age)
return 1;
if(p.age>this.age)
return-1;
return 0;
} }

比较器CompartorbyName

/**
* 根据名子比较返回顺序
*/
package cn.stat.p6.arraylist.demo; import java.util.Comparator; import cn.stat.p5.person.demo.PresonDemo; /**
* @author Administrator
*
*/
public class CompartorbyName implements Comparator { /* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
@Override
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
PresonDemo p1=(PresonDemo)o1;
PresonDemo p2=(PresonDemo)o2;
int temp=p1.getName().compareTo(p2.getName());
return temp==0?p1.getAge()-p2.getAge():temp;
} }

TreeSetDemo

package cn.stat.p6.arraylist.demo;
import cn.stat.p5.person.demo.PresonDemo;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.ArrayList; public class TreeSetDemo { public static void main(String[] args) {
TreeSet ts=new TreeSet(new CompartorbyName()); //比较器 ts.add(new PresonDemo("list1",2));
ts.add(new PresonDemo("list9",2));
ts.add(new PresonDemo("list7",2));
ts.add(new PresonDemo("list4",2));
ts.add(new PresonDemo("list5",2));
Iterator<PresonDemo> it=ts.iterator();
while(it.hasNext())
{
PresonDemo p=(PresonDemo)it.next();
System.out.println(p.getName()+" "+p.getAge()); }
}
}

java比较器Comparator 使用的更多相关文章

  1. java比较器Comparator

    1. 实现比较类 public class Comparator implements java.util.Comparator<TaskInfo>{ @Override public i ...

  2. Java基础--比较器Comparator

    Comparable接口和Comparator接口都是用来定义集合中的排序的,只是Comparable是在集合内部定义排序的实现,Comparator是在集合外部排序的实现. Comparable 的 ...

  3. java集合框架之比较器Comparator、Comparable

    参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name ...

  4. java中Comparator比较器顺序问题,源码分析

    提示: 分析过程是个人的一些理解,如有不对的地方,还请大家见谅,指出错误,共同学习. 源码分析过程中由于我写的注释比较啰嗦.比较多,导致文中源代码不清晰,还请一遍参照源代码,一遍参照本文进行阅读. 原 ...

  5. TreeSet的两种实现方法:Comparable和Comparator(Java比较器)

    Comparable与Comparator实际上是TreeSet集合的两种实现方式,用来实现对象的排序.下边介绍一下两种比较器的使用方法和区别. Comparable称为元素的自然顺序,或者叫做默认顺 ...

  6. 小白养成记——Java比较器Comparable和Comparator

    一.使用情景 1.  调用Arrays.sort()方法或Collections.sort()方法对自定义类的对象排序 以Arrays.sort()为例.假定有如下自定义的Person类 1 publ ...

  7. 菜鸡的Java笔记 comparator 比较器

    1.数组操作类: Arrays        2.两种比较器的使用: Comparable Comparator        3.实现二叉树算法            content (内容)   ...

  8. Java自定义比较器Comparator

    1.数字排序  奇数在前,偶数在后.奇数降序,偶数升序.输入:"0,1,2,3,4,5,6,7,8,9"        输出:"9,7,5,3,1,0,2,4,6,8&q ...

  9. 【java】实现Interface java.lang.Comparable<T>接口的int compareTo(T o)方法实现对象数组或链表或集合的排序,和挽救式对象比较器Interface java.util.Comparator<T>

    package 对象比较排序; import java.util.Arrays; class A implements Comparable<A>{ private String name ...

随机推荐

  1. runtime 运行时机制 完全解读

    runtime 运行时机制 完全解读   目录[-] import import 我们前面已经讲过一篇runtime 原理,现在这篇文章主要介绍的是runtime是什么以及怎么用!希望对读者有所帮助! ...

  2. 解压Taobao手机客户端发现的东西

    今天解压了Taobao手机客户端发现了几个.so文件, 其中有两个挺感兴趣的,查了一下,以后去研究下. libBSPatch.so 是用于支持增量更新功能的库文件. libwebp.so  好像是We ...

  3. Oracle基本分组查询group by的使用

    (1)查询各个工作岗位的总人数 (2)查询各个工作岗位的总工资 (3)查询各个工作岗位的平均工资

  4. AltiumDesigner14板框定义及3D显示图文教程

    很多人都跟我反应说AD14不能定义板框大小,或者说是不知道怎么定义板框的大小,确实AD14的操作和AD13或者是AD10的版本斗有一些差异,尤其是现在最新的版本AltiumDesigner14.3.1 ...

  5. Qt之QTableView显示富文本(使用了QAbstractTextDocumentLayout和QTextDocument)

    http://blog.csdn.net/liang19890820/article/details/50973099

  6. AcitonBar 自定义布局

    Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar. 自定义Activity主题和ActionBar样式 在新建的 ...

  7. Oracle 客户端 NLS_LANG 的设置(转)

    1. NLS_LANG 参数组成NLS_LANG参数由以下部分组成:NLS_LANG=<Language>_<Territory>.<Clients Characters ...

  8. 【HDOJ】4541 Ten Googol

    打表的大水题. /* 4541 */ #include <cstdio> #include <cstdlib> #include <cstring> , , , } ...

  9. 【转】【教程】office 2013 & visio 2013的激活

    原文网址:http://zhan.renren.com/sola86?gid=3602888498037097351&checked=true 1.下载安装文件 office和visio都有两 ...

  10. Xcode开启gcc/g++

    Apple announced Xcode 4.3 for OSX Lion and 4.4 for OSX Mountain Lion last week. The major difference ...