一、 Comparable

 public class Person implements Comparable<Person>{
public int Age;
public String Name;
public int compareTo(Person o) {
// TODO Auto-generated method stub
return this.Age-o.Age;
}
} public static void main(String[] args) {
// TODO Auto-generated method stub
Person[] persons = new Person[2];//List<Person> persons = new ArrayList<Person>();
Person person1 = new Person();
person1.Age = 32;
person1.Name = "wyp";
persons[0] = person1;//persons.add(person1);
Person person2 = new Person();
person2.Age = 12;
person2.Name = "lx";
persons[1] = person2;//persons.add(person2); Arrays.sort(persons);//Collections.sort(persons);
for (Person person : persons) {
String content = String.format("Name:%s,Age:%s",person.Name,person.Age);
System.out.println("按Age排序");
System.out.println(content);
}
}

二、 Comparator

 public class NameSort implements Comparator<Person> {

     @Override
public int compare(Person o1, Person o2) {
// TODO Auto-generated method stub
return o1.Name.compareTo(o2.Name);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub Person[] persons = new Person[2];//List<Person> persons = new ArrayList<Person>();
Person person1 = new Person();
person1.Age = 32;
person1.Name = "wyp";
persons[0] = person1;//persons.add(person1);
Person person2 = new Person();
person2.Age = 12;
person2.Name = "lx";
persons[1] = person2;//persons.add(person2); Arrays.sort(persons,new NameSort());//Collections.sort(persons,new NameSort());
for (Person person : persons) {
String content = String.format("Name:%s,Age:%s",person.Name,person.Age);
System.out.println("按Name排序");
System.out.println(content);
}
}

Java Comparator和Comparabler的区别的更多相关文章

  1. Java基础之comparator和comparable的区别以及使用

    Java基础之comparator和comparable的区别以及使用 1: 区别:  .Comparable类需要实现此接口,定义在类内,不利于扩展 2 .Comparator更灵活,可以随时自定义 ...

  2. 接口Comparator和Comparable的区别和联系

    1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Pe ...

  3. java 接口和抽象类的区别

    java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...

  4. JDK与Java SE/EE/ME的区别

    1. Java SE(Java Platform,Standard Edition). Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用 ...

  5. java 静态方法和实例方法的区别

    转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面:   在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法 ...

  6. java中ArrayList 、LinkList区别

    转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...

  7. java抽象类与接口的区别及用法

    java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...

  8. 【转】java int与integer的区别

    java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1 ...

  9. java 中 ==和equals 的区别

      Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...

随机推荐

  1. 【12c】root container 和 pdb 的一些差别

      Where\what ? root pdb 备注 Control files and redo log files Y belongs to the CDB and not to a spec ...

  2. C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理

    C语言中,数组初始化的方式主要有三种: 1.声明时,使用 {0} 初始化: 2.使用memset: 3.用for循环赋值. 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: #define ...

  3. C++分布式实时应用框架——系统管理模块

    一个分布式实时系统集群动辄上百台机器,集群的规模已经限定这将是一个”封闭“的系统.你不可能再一台台去操作上百台机器,传统的人工运维方式早已不能满足当下需要,所有对集群或者集群中某个节点的操作都必需通过 ...

  4. request和request.form和request.querystring的区别

    asp中获取传递的参数,一般用request或者用request成员函数request.form,两种方式都可以获取页面表单传递过来的参数值,一直没留意两种方法有什么区别,我一般喜欢用request( ...

  5. STL List::sort() 解析

    看侯捷翻译那本<STL源码剖析>中list内置sort的算法,书中注释说是quick sort,看了半天没看明白, template <class T, class Alloc> ...

  6. dxg:TreeListView.RowDecorationTemplate

    <dxg:TreeListView.RowDecorationTemplate> <ControlTemplate TargetType="ContentControl&q ...

  7. Design Your Own Protocol In Five Minutes

    https://mayaposch.wordpress.com/2011/10/03/design-your-own-protocol-in-five-minutes ---------------- ...

  8. Python开发接水果小游戏

    我研发的Python游戏引擎Pylash已经更新到1.4了.如今我们就来使用它完毕一个极其简单的小游戏:接水果. 下面是游戏截图: 游戏操作说明:点击屏幕左右两边或者使用键盘方向键控制人物移动.使人物 ...

  9. easyui combotree模糊查询

    技术交流QQ群:15129679 让EasyUI的combobox和combotree同时支持自定义模糊查询,在不更改其他代码的情况下,添加以下代码就行了: /** * combobox和combot ...

  10. 为什么要使用href=”javascript:void(0);”?

    JavaScript中语句最后的分号是可以缺省的,那为何要使用javascript:;而不是javascript:呢? 是习惯还是规范,我疑惑了! 具有代码洁癖的coder们,没事多写一个分号,圣洁的 ...