- 浏览: 1328759 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (274)
- 生活工作感想 (16)
- 数据结构算法 (2)
- 技术转载 (53)
- 其他 (1)
- LINUX (9)
- 数据库 (5)
- IDE-eclipse (11)
- JAVA (47)
- JBPM (2)
- windows (2)
- 服务器 (12)
- activiti (1)
- maven (3)
- 励志转载 (1)
- jsp相关 (13)
- webservice (3)
- pinyin4j (1)
- 搜索引擎 (1)
- WEB前端 (64)
- javascript (58)
- 正则表达式 (4)
- junit (2)
- 微信 (1)
- jquery (17)
- css3 (3)
- android (9)
- 面试 (2)
- 安全 (1)
- mysql (27)
- oracle (8)
- Chrome浏览器 (8)
- angularjs (1)
- httpclient (2)
- spring (2)
- spring-quartz (2)
- python (1)
- HTML5 (1)
- reactjs (2)
最新评论
-
mm1984930522:
[i][/i]
html5 跨iframe的拖拽实现移动端页面设计器 -
wangyudong:
很多API doc生成工具生成doc需要重度依赖代码里加注解的 ...
jsdoc-toolkit生成javascriptAPI文档 -
kealuya:
留言止于智者
Tomcat 7最大并发连接数的正确修改方法 -
GGGGeek:
应该是@Before public void setUp(){ ...
利用junit对springMVC的Controller进行测试 -
leoge0113:
...
Tomcat 7最大并发连接数的正确修改方法
一个类实现了java.lang.Comparable接口表明这个类的对象之间是可以进行相互比较的,这个类对象组成的集合就可以直接使用Collections.sort()方法排序。
java.util.Comparator可看成是算法的实现,将算法和数据分离,可在以下两种环境下使用:
1.类的设计师没有考虑到比较问题而没有实现Comparable接口,可以通过Comparator排序而不用改变对象本身
2.可以使用多种排序标准,升序,降序
第一种方法:实现java.lang.Comparator接口进行排序
public class User implements Comparable{
private String name;
private int age;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int compareTo(Object o) {
// TODO Auto-generated method stub
User user = (User)o;
if (age > user.getAge()){
return 1;
} else if (age == user.getAge()){
return 0;
} else {
return -1;
}
}
}
public class ComparableTest {
@SuppressWarnings("unchecked")
@Test
public void comparable(){
List<User> userList = new ArrayList<User>();
User user = new User();
user.setAddress("北京");
user.setAge(15);
user.setName("张三");
userList.add(user);
user = new User();
user.setAddress("上海");
user.setAge(25);
user.setName("李四");
userList.add(user);
user = new User();
user.setAddress("广州");
user.setAge(18);
user.setName("王五");
userList.add(user);
user = new User();
user.setAddress("香港");
user.setAge(35);
user.setName("马六");
userList.add(user);
Collections.sort(userList);
for (User u:userList){
System.out.println(u.getAge()+","+u.getName()+","+u.getAddress());
}
}
}
第二种方法: 定义比较算法,实现java.util.Comparator接口
public class User {
private String name;
private int age;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
public class NewComparator implements Comparator<User>{
public int compare(User user1, User user2) {
// TODO Auto-generated method stub
if (user1.getAge() > user2.getAge()){
return 1;
} else if (user1.getAge() == user2.getAge()){
return 0;
} else {
return -1;
}
}
}
public class ComparatorTest {
@SuppressWarnings("unchecked")
@Test
public void comparatorTest(){
List<User> userList = new ArrayList<User>();
User user = new User();
user.setAddress("北京");
user.setAge(15);
user.setName("张三");
userList.add(user);
user = new User();
user.setAddress("上海");
user.setAge(25);
user.setName("李四");
userList.add(user);
user = new User();
user.setAddress("广州");
user.setAge(18);
user.setName("王五");
userList.add(user);
user = new User();
user.setAddress("香港");
user.setAge(35);
user.setName("马六");
userList.add(user);
Collections.sort(userList,new NewComparator());
for (User u:userList){
System.out.println(u.getAge()+","+u.getName()+","+u.getAddress());
}
}
}
发表评论
-
SimpleCaptcha验证码组件使用
2015-03-31 13:19 10029最近需要做一个验证码信息,在网上找了些验证码组 ... -
Hibernate纯SQL查询
2015-03-19 14:18 632目前有个项目使用了hibernate,让使用m ... -
cglib中的两个工具类BeanMap,BeanCopier
2015-01-25 17:11 16529这两天看了下cglib的一些源码,发现B ... -
jsdoc-toolkit生成javascriptAPI文档
2015-01-22 12:47 2791前言 对于使 ... -
随机生成20个15位长度的数字
2015-01-20 09:16 2572import java.ut ... -
jvisualvm 远程监控Linux下的tomcat
2015-01-13 20:43 11095前一段测试 ... -
Axis2开发WebService客户端
2015-01-11 22:08 1557转:http://harveyzeng.iteye.com ... -
phonegap 开发
2014-11-02 21:35 01.在cmd的环境中 2.进入你要创建的文件夹里,比如在E ... -
phonegap插件编写升级
2014-11-02 21:09 1289个人博客原文链接:http://www.zero ... -
写一个phonegap插件
2014-11-01 18:44 1682我的博客网站:http://www.zeromike.ne ... -
java注解方式进行反射
2014-11-01 18:38 1474我的博客网站:http://www.zeromike.ne ... -
java使用3DES算法进行密码加密
2014-10-20 23:33 34150我的个人网站 ... -
java 实现文件内容的加密和解密
2014-10-05 03:39 21012转载:http://xiaoxiaokuang.iteye. ... -
利用apache Collections和google guava对list和map进行过滤和排序
2014-10-03 18:34 16699在工作中,我们常常需要对List或者Map等集合结 ... -
MD5方式处理tomcat下文件名称乱码问题
2014-09-28 21:17 2041今天说一下下载文件的东西,因为整体的架构是:手机客 ... -
项目中log4j的简单配置
2014-09-26 19:28 1294每次做日志处理的时候,都是在网上左扒一点,右扒一点,太费劲 ... -
java操作文件
2014-09-23 21:57 592先贴个自己写的 import java.io. ... -
java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)
2014-09-10 22:12 34583参考:http://blog.163.com/shanqin ... -
java base64编码和解码(转)
2014-07-21 21:19 4562转:http://hw1287789687.iteye.co ... -
POI 操作Excel,创建下拉框
2014-05-29 15:57 1623import java.io.FileOutputStre ...
相关推荐
java.lang.Comparable和java.util.Comparator是两个容易混淆的接口,两者都带有比较的意思,那么两个接口到底有什么区别,分别在什么情况下使用呢? Comparable Comparable是java.lang包下面的接口,lang包下面可以...
java排序Comparator和Comparable
java的Comparator和Comparable
Java-中的-Comparator-和-Comparable.md
计算机后端-Java-Java核心基础-第22章 常用类 22. 自定义类实现Comparable自然排序.avi
【IT十八掌徐培成】Java基础第12天-02.TreeSet实现与Comparable接口.zip
本文,先介绍Comparable 和Comparator两个接口,以及它们的差异;接着,通过示例,对它们的使用方法进行说明
Java中Comparable和Comparator的区别共3页.pdf.zip
用哥德巴赫猜想来总结,哥德巴赫猜想就是要去输入一个偶数,输出这个偶数能被分解为哪两个质数的和,具体实现就是要去验证拆分出来的两个数是否为质数。 传统的方法我们需要先把验证质数的方法写好,然后再去将输入...
来自java.lang.Comparable。Comparable是 排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外...
Comparable&Comparator区别,看完就明白了
Comparable与Comparator的区别Java开发Java经验技巧共3页.pdf.zip
Java源码学习3:java.lang.Comparable接口和java.util.Comparator接口 考虑到所有Number类的派生类都实现了Comparable接口,故而优先学习Comparable接口。 Comparable接口和Comparator接口是相似接口,需要对比下。
通过简单的例子初步了解Comparable和Comparator的使用,注释很详细
java中常见的异常类 1. java.lang.nullpointerexception
import java.util.LinkedHashSet; public class HashSetTest { public static void main(String[] args) { HashSet hs = new LinkedHashSet(); hs.add("hahah"); hs.add("hehe"); hs.add("heihei"); hs....
教你学会Comparator和Comparable
主要介绍了java 中Comparable与Comparator详解与比较的相关资料,需要的朋友可以参考下
主要介绍了Java Comparable和Comparator对比详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下