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 ...
随机推荐
- CentOS下php使用127.0.0.1不能连接mysql的解决方法
这篇文章主要介绍了CentOS下php使用127.0.0.1不能连接mysql的解决方法,本文原因是SELINUX导致的连接失败,需要的朋友可以参考下 php代码很简单: 复制代码代码如下: $ser ...
- php加密解密实用类
一个加解密类.如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具 用户注册的密码一般不会明文保存,总得加个密先.最简单的当然是在数据库sql语句中调用md5函数加密用户密码.这里 ...
- DbContext的命名空间
未能找到类型或命名空间名称“DbContext” 解决办法:需要引用命名空间,using System.Data.Entity; 如果还报错的话,则项目需要引用程序集EntityFramework.d ...
- cocos2d(粒子效果编辑器)
ParticleDesigner for Mac下载地址:http://www.cocoachina.com/bbs/read.php?tid=108339 最近在做一款粒子编辑器 其实就是在co ...
- 网站注册信息的JS全码
<div class="box_index2"> <div class="login_title"> ...
- Reachability 检测网络状态
-(void)viewWillAppear:(BOOL)animated { [IOSExcept JudgeNetwork];//联网 NSLog(@"检查网络 请稍后....." ...
- Swift—Core Foundation框架-备
Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS X和iOS开发 ...
- Swift—默认构造函数-备
结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数.默认构造函 ...
- 可用版本的host
http://blog.csdn.net/ljphhj/article/details/11939591 http://my.oschina.net/lvkun0223/blog/282356 两者的 ...
- ural 1723 Sandro's Book
http://acm.timus.ru/problem.aspx?space=1&num=1723 #include <cstdio> #include <cstring&g ...