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 ...
随机推荐
- poj 1007 Quoit Design(分治)
Quoit Design Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- ActiveMQ使用示例之Queue
我们使用ActiveMQ为大家实现一种点对点的消息模型. 开发时候,要将apache-activemq-5.12.0-bin.zip解压缩后里面的activemq-all-5.12.0.jar包加入到 ...
- [转]【Delphi】 Thread.Queue与Synchronize的区别
前话: 其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别,效果上:二者 ...
- Android下的Junit测试
Android SDK 1.5已经将JUnit包含进来了,用过一次,昨天晚上重新用的时候还出了一点问题,还是决定写一篇比较详细的文章,供大家和自己以后使用,写起来也挺方便的,Android下的Juni ...
- [好文翻译]WEB前端性能优化的14条规则
作为一个半前端工程师,而且只会写点HTML5和CSS3的“假”前端工程师,为了能更好地理解一下前端的花花世界,最近拜读了<高性能网站建设指南>一书,对作者提出的前端性能优化的14个规则获益 ...
- java根据经纬度获取地址
public class GetLocation { public static void main(String[] args) { // lat 39.97646 //log 116.3039 S ...
- Jenkins——应用篇——插件使用——Publish over SSH
本文是jenkins应用系统文章的一部分,大部分来自工作和学习中的实践,部分内容来自官方文档和网友的文章,引用的文章会在"參考资料"部分附上原始链接,如无意中侵犯您的权利.请联系Q ...
- MybatisGen1.0 Mybatis JavaBean Mapper生成工具
MybatisGen 一:主要技术 1:apache commons dbutils 2:freemarker模板引擎 3:java(1.5+) 二:使用说明 1:配置文件是src/config.pr ...
- python数据库访问
取得rs,使用,报错 sqlite3.Cursor' object has no attribute '__getitem__' 原因:使用时conn已经关闭了. 解决:用fetchall取出传递回来 ...
- Pinger2
import java.io.IOException;import java.io.InputStreamReader;import java.io.LineNumberReader;import j ...