Java Comparator和Comparabler的区别
一、 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的区别的更多相关文章
- Java基础之comparator和comparable的区别以及使用
Java基础之comparator和comparable的区别以及使用 1: 区别: .Comparable类需要实现此接口,定义在类内,不利于扩展 2 .Comparator更灵活,可以随时自定义 ...
- 接口Comparator和Comparable的区别和联系
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Pe ...
- java 接口和抽象类的区别
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...
- JDK与Java SE/EE/ME的区别
1. Java SE(Java Platform,Standard Edition). Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用 ...
- java 静态方法和实例方法的区别
转自 java 静态方法和实例方法的区别 静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法 ...
- java中ArrayList 、LinkList区别
转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.L ...
- java抽象类与接口的区别及用法
java抽象类与接口的区别及用法 一.抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明. 二.接口是设计的结果 :抽象类是重构的结果 . 三.java不支持多重继承,所以继承抽象类只能继承一 ...
- 【转】java int与integer的区别
java int与integer的区别 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1 ...
- java 中 ==和equals 的区别
Java中equals和==的区别 java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型.byte,short,char,int,long,float,double,boolea ...
随机推荐
- 【Burnside定理】&【Pólya定理】
Burnside & Pólya (详细内容请参阅<组合数学>或2008年cyx的论文,这里只写一些我学习的时候理解困难的几个点,觉得我SB的请轻鄙视……如果有觉得不科学的地方欢迎 ...
- OpenCV学习(34) 点到轮廓的距离
在OpenCV中,可以很方便的计算一个像素点到轮廓的距离,计算距离的函数为: double pointPolygonTest(InputArray contour, Point2f pt, bool ...
- IOS学习笔记02---语言发展概述,计算机语言简介.
IOS学习笔记02---语言发展概述,计算机语言简介. ------------------------------------------------------------------------ ...
- 微信小程序Nginx环境配置
环境配置概述 主要内容: SSL免费证书申请步骤 Nginx HTTPS 配置 TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申 ...
- 第三章:ES分词简单说明
1. Index_Analyzer为索引时使用的分词器,search_Analyzer为搜索时使用的分词器 这个索引,对应的数据是下图: 数据格式是用%分隔的年份,"index_analyz ...
- linux用户管理中两个重要的“父子”配置文件
在Linux中主要通过用户配置文件来查看和修改用户信息,因此下面我们将介绍两个重要的用户配置文件,让你能够更好的hold住你的用户. 一:父文件/etc/passwd 1.查看配置文件/etc/pas ...
- windows下安装redis 以及phpredis的扩展 (windows redis php&php7)
一.工具准备 1. redis for windows 下载 https://github.com/MSOpenTech/redis 2. PHP扩展下载 http://pecl.php.net/pa ...
- 使用Spring提供Quartz来实现定时任务
Spring功能越来越多了,用起来还很舒服方便,Quartz实现的定时任务就是一个. 首先是配置文件: <?xml version="1.0" encoding=" ...
- [android错误] Installation error: INSTALL_FAILED_VERSION_DOWNGRA
错误表现: [2014-06-27 18:19:51 - XXX] Installing XXXX.apk... [2014-06-27 18:20:00 - XXX] Installation er ...
- c#实现验证码功能(多种模式下分别实现验证功能)详细,带注释
网上找了很多验证相关的代码,发现有很多瑕疵.现在本人整理测试了一个实现验证码功能的代码,里面有纯数字,纯英文,英文和数字混合等三种模式.并且在必要地方都已经备有注释,希望可以帮到那些需要的人. 验证码 ...