一、 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. Strings of Power

    B. Strings of Power Volodya likes listening to heavy metal and (occasionally) reading. No wonder Vol ...

  2. 3 Sum leetcode java

    题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...

  3. Insertion Sort List Leetcode java

    题目: Sort a linked list using insertion sort. 题解: Insertion Sort就是把一个一个元素往已排好序的list中插入的过程. 初始时,sorted ...

  4. Java基础(十):封装

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法.封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访 ...

  5. Spark Streaming updateStateByKey案例实战和内幕源码解密

    本节课程主要分二个部分: 一.Spark Streaming updateStateByKey案例实战二.Spark Streaming updateStateByKey源码解密 第一部分: upda ...

  6. Node.js中的HTTPS示例

      需要openssl的支持, openssl本身不提供windows的安装程序,可以按照如下的步骤进行安装: (参考https://conetrix.com/Blog/how-to-install- ...

  7. Office WORD如何在图片上添加文字

    如图所示,在图片格式中选择图片衬于文字下方即可,这样看起来感觉就像在图片上直接加字一样,没有生硬的感觉. 最终效果: Word如何在图片上添加文字Word如何在图片上添加文字Word如何在图片上添加文 ...

  8. 你需要来自system的权限才能对此文件夹进行更

    删除Adobe安装文件时,报错没有权限. 两种解决方案: 1. 设置权限 Win7的安全性提高的同时,对不懂的人来说觉得有些麻烦. 2. PE系统删除 进入PE系统删除即可.

  9. 如何不使用pthread_cancel而杀死线程

    http://www.cnblogs.com/no7dw/archive/2012/09/27/2705847.html During the time I use standalone cross ...

  10. UIFont可用字体

    label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; 字体名如下: Font Family: Amer ...