java比较器Comparator 使用
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 使用的更多相关文章
- java比较器Comparator
1. 实现比较类 public class Comparator implements java.util.Comparator<TaskInfo>{ @Override public i ...
- Java基础--比较器Comparator
Comparable接口和Comparator接口都是用来定义集合中的排序的,只是Comparable是在集合内部定义排序的实现,Comparator是在集合外部排序的实现. Comparable 的 ...
- java集合框架之比较器Comparator、Comparable
参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name ...
- java中Comparator比较器顺序问题,源码分析
提示: 分析过程是个人的一些理解,如有不对的地方,还请大家见谅,指出错误,共同学习. 源码分析过程中由于我写的注释比较啰嗦.比较多,导致文中源代码不清晰,还请一遍参照源代码,一遍参照本文进行阅读. 原 ...
- TreeSet的两种实现方法:Comparable和Comparator(Java比较器)
Comparable与Comparator实际上是TreeSet集合的两种实现方式,用来实现对象的排序.下边介绍一下两种比较器的使用方法和区别. Comparable称为元素的自然顺序,或者叫做默认顺 ...
- 小白养成记——Java比较器Comparable和Comparator
一.使用情景 1. 调用Arrays.sort()方法或Collections.sort()方法对自定义类的对象排序 以Arrays.sort()为例.假定有如下自定义的Person类 1 publ ...
- 菜鸡的Java笔记 comparator 比较器
1.数组操作类: Arrays 2.两种比较器的使用: Comparable Comparator 3.实现二叉树算法 content (内容) ...
- Java自定义比较器Comparator
1.数字排序 奇数在前,偶数在后.奇数降序,偶数升序.输入:"0,1,2,3,4,5,6,7,8,9" 输出:"9,7,5,3,1,0,2,4,6,8&q ...
- 【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 ...
随机推荐
- rsync同步配置
因为公司数据库比较重要,现在只有一台服务器,IP为:118.145.*.*暂称为server,公司一台虚拟机,IP为.192.168.0.100 ,暂称为rsync 1.安装服务器端:yum -y i ...
- Hibernate对象的状态和映射
一. Hibernate对象的状态 实体对象的三种状态: 1) 暂态(瞬时态)(Transient)---实体在内存中的自由存在,它与数据库的记录无关. po在DB中无记录(无副本),po和sessi ...
- HIBERNATE 入门小案例
刚刚开始肯定好多人都会问什么是hibernate呢? 那么下面我们就来了解一下什么事hibernate吧! 首先,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对 ...
- 安卓4.2原生rom状态栏显示运营商
前言:要调整状态栏布局,需反编译systemui.apk.单卡机修改status_bar.xml和signal_cluster_view.xml,双卡机修改gemini_status_bar.xml和 ...
- SJA1000寄存器设置
在设置CAN控制器SJA1000的输出控制寄存器(OCR)时,由于电路图中只用到了TX0和RX0,所以只考虑OCTP0,OCTN0,OCPOL0.这里设置成了010.然后查了一下配置的表,如下所示: ...
- 转:分享13款PHP开发框架
文章来自于:http://mashable.com/2014/04/04/php-frameworks-build-applications/ Building software applicatio ...
- win8 在哪找画图工具
把鼠标放在右上角,然后往下拉,出现搜索图标,如图: 在‘搜索’输入‘画图’ 打开即可使用.
- Altium Designer 等长线&&蛇形线
Altium Designer 里面怎么画等长线 (1)一般是将走线布完后,新建一个class. Design -> Classes 如上图添加完后可以点击close. (2)快捷键 T + R ...
- delphi 程序窗体及控件自适应分辨率(通过ComponentCount遍历改变字体大小以及上下左右)
unit untFixForm; interface uses Classes, SysUtils, Controls, Forms; type TFontedControl = class(TCon ...
- Mysql时间戳开始时间1970-01-01 00:00:00和PHP date慢8小时
mysql> select unix_timestamp('1970-01-01 00:00:01');+---------------------------------------+| un ...