一、 Comparable

  1. public class Person implements Comparable<Person>{
  2. public int Age;
  3. public String Name;
  4. public int compareTo(Person o) {
  5. // TODO Auto-generated method stub
  6. return this.Age-o.Age;
  7. }
  8. }
  9.  
  10. public static void main(String[] args) {
  11. // TODO Auto-generated method stub
  12. Person[] persons = new Person[2];//List<Person> persons = new ArrayList<Person>();
  13. Person person1 = new Person();
  14. person1.Age = 32;
  15. person1.Name = "wyp";
  16. persons[0] = person1;//persons.add(person1);
  17. Person person2 = new Person();
  18. person2.Age = 12;
  19. person2.Name = "lx";
  20. persons[1] = person2;//persons.add(person2);
  21.  
  22. Arrays.sort(persons);//Collections.sort(persons);
  23. for (Person person : persons) {
  24. String content = String.format("Name:%s,Age:%s",person.Name,person.Age);
  25. System.out.println("按Age排序");
  26. System.out.println(content);
  27. }
  28. }

二、 Comparator

  1. public class NameSort implements Comparator<Person> {
  2.  
  3. @Override
  4. public int compare(Person o1, Person o2) {
  5. // TODO Auto-generated method stub
  6. return o1.Name.compareTo(o2.Name);
  7. }
  8. }
  9.  
  10. public static void main(String[] args) {
  11. // TODO Auto-generated method stub
  12.  
  13. Person[] persons = new Person[2];//List<Person> persons = new ArrayList<Person>();
  14. Person person1 = new Person();
  15. person1.Age = 32;
  16. person1.Name = "wyp";
  17. persons[0] = person1;//persons.add(person1);
  18. Person person2 = new Person();
  19. person2.Age = 12;
  20. person2.Name = "lx";
  21. persons[1] = person2;//persons.add(person2);
  22.  
  23. Arrays.sort(persons,new NameSort());//Collections.sort(persons,new NameSort());
  24. for (Person person : persons) {
  25. String content = String.format("Name:%s,Age:%s",person.Name,person.Age);
  26. System.out.println("按Name排序");
  27. System.out.println(content);
  28. }
  29. }

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. SystemVerilog Event Scheduling Algorithm

    While simulating System Verilog design and its test-bench including assertions, events has to be dyn ...

  2. SQL Server AlwaysOn Setup Step-By-Step Guide

    Step-By-Step: Creating a SQL Server 2012 AlwaysOn Availability Group http://blogs.technet.com/b/cani ...

  3. IOS之导航控制器传值

    UITableView有两种风格:UITableViewStylePlain和UITableViewStyleGrouped.这两者操作起来其实并没有本质区别,只是后者按分组样式显示前者按照普通样式显 ...

  4. Java 抽象类和接口有什么差别

    抽象类和接口有什么差别? 1. 抽象类在java语言中所表示的是一种继承关系,一个子类仅仅能继承一个父类.可是能够实现多个接口. 2. 在抽象类中能够拥有自己的成员变量和非抽象类方法,可是接口中仅仅能 ...

  5. WIN7使用技巧 让电脑变身WiFi热点,让手机、笔记本共享上网,如何开启无线网络,共享无线网络

    将win7电脑变身WIFI热点,让手机.笔记本共享上网 用win7建立无线局域网,可以共享上网可以局域网游戏. 开启windows 7的隐藏功能:虚拟WIFI和SoftAP(即虚拟无线AP),就可以让 ...

  6. Java开发中所遇问题积累

    1.判断两个字符串是否相等时,如下,使用" == "无效: String name = "Jack"; if(name.equals("Jack&qu ...

  7. uploadfiy 3.0

    uploadfiy v3.0中按钮可以轻易修改成中英文,而不至于想2.xx版本中,需要对中文进行编码. 3.0中圆圆的按钮,很漂亮. 但是,3.0中去掉了原来的onComplete函数,并且也去掉了从 ...

  8. linux 用户管理,用户权限管理,用户组管理

    linux 用户管理,用户权限管理,用户组管理 一:ls -l 命令 解释 第个d表示是目录,如果是文件是-,如果是连接是l 第2到4个 rwx 表示创建者的操作权限 r 读,w 写,x 执行 第5到 ...

  9. Struts2(三)更改字符编码

    一.导入包和struts配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE stru ...

  10. Java从零开始学二十一(集合List接口)

    一.List接口 List是Collection的子接口,里面可以保存各个重复的内容,此接口的定义如下: public interface List<E> extends Collecti ...