由文生义:

继承Comparable ,表示该类的实例是可以相互比较的;

继承Comparator,表示该类是一个比较器,里面设置了按什么属性比较,list需要按这个比较器里的规则来比较;

使用方法如下:

1.Comparable

public class  User implements Comparable {
    private  string id;

private  int age;

//必须实现的方法:

public int compareTo(Object o) {

return this.age - ((ComparableUser) o).getAge();

}

}

//调用:

User[] users = new User[] {

new ComparableUser("u1001", 25),

new ComparableUser("u1002", 20),

new ComparableUser("u1003", 21)

};

Arrays.sort(users);

2.Comparator

public class  User  {
    private  string id;

private  int age;

}

public class  ComparableUser implements Comparable {

//必须实现的方法:

public int compareTo(Object o) {

return this.age - ((ComparableUser) o).getAge();

}

}

//调用

User[] users = new User[] {

new User("u1001", 25),

new User("u1002", 20),

new User("u1003", 21) };

Arrays.sort(users, new UserComparator());

//也可以零时定义

// key的格式[菜单类型显示顺序:菜单类型名称]
        Map<String, List<UserMenu>> map = new TreeMap<String, List<UserMenu>>(new Comparator() {
             public int compare(Object o1, Object o2) {
                String str1 = (String)o1;
                String str2 = (String)o2;
                int showOrder1 = Integer.valueOf(str1.split(":")[0]);
                int showOrder2 = Integer.valueOf(str2.split(":")[0]);
                return  showOrder2 - showOrder1;
             }
        });

Comparable和Comparator实现对象比较的更多相关文章

  1. Java中Comparable和Comparator实现对象比较

    1.通过Comparable实现排序 package Comparable; import java.util.Arrays; public class ComparableUser implemen ...

  2. 对象比较器:Comparable和Comparator

    在进行对象数组排序的过程中需要使用到比较器,比较器有两个:Comparable和Comparator ①.java.lang.Comparable:是在类定义是时候默认实现好的接口,里面提供有一个co ...

  3. Java ArrayList中对象的排序 (Comparable VS Comparator)

    我们通常使用Collections.sort()方法来对一个简单的数据列表排序.但是当ArrayList是由自定义对象组成的,就需要使用comparable或者comparator接口了.在使用这两者 ...

  4. 对象大小对比之Comparable与Comparator

    一 概述 1.Comparable与Comparator使用背景 数值型数据(byte int short long float double)天生可对比大小,可排序,String实现了Compara ...

  5. Map集合的遍历方式以及TreeMap集合保存自定义对象实现比较的Comparable和Comparator两种方式

    Map集合的特点 1.Map集合中保存的都是键值对,键和值是一一对应的 2.一个映射不能包含重复的值 3.每个键最多只能映射到一个值上 Map接口和Collection接口的不同 Map是双列集合的根 ...

  6. Java中Comparable与Comparator的区别

    相同 Comparable和Comparator都是用来实现对象的比较.排序 要想对象比较.排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都 ...

  7. Java中Comparable和Comparator接口区别分析

    Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...

  8. Comparable和Comparator的区别

    Comparable Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较 ...

  9. Java中Comparable和Comparator区别小结

    一.Comparable简介 Comparable是排序接口.若一个类实现了Comparable接口,就意味着该类支持排序.实现了Comparable接口的类的对象的列表或数组可以通过Collecti ...

随机推荐

  1. alpha值的问题

    但凡图像都会涉及到透明度问题.使用透明度之后就可以看到多层图像.Alpha值就是用于描述透明度的参量.Alpha值是一个百分数,alpha=1表示源文件发出的光全部被观察者观察到. 既然是透明度,那么 ...

  2. GUI

    容器:1.JWindow 2.JFrame 3.JDialogo 4.JApplet 边界布局管理: 布局方式:把整个容器划分为五个部分:东西南北中,南北要贯通,中间最大(不仅是范围,权利也最大), ...

  3. hexo环境变量的配置问题

    因为一些个人原因,想尝试在github上用hexo搭建一个博客,于是用npm安装,安装完成之后却一直无法确认hexo的版本问题,cmd中也一直提示hexo -v 不是有效的命令行,在重装了几次Node ...

  4. NoSuchMethodError

    http://www.tuicool.com/articles/iIVbuuZ 有些服务器是指定某个目录下的所有jar包,这样如果同时存在不同版本的jar包,也会引起这个问题,算一个检查点

  5. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  6. MVCC PostgreSQL实现事务和多版本并发控制的精华

    原创文章,同步发自作者个人博客,http://www.jasongj.com/sql/mvcc/ PostgreSQL针对ACID的实现机制 事务的实现原理可以解读为RDBMS采取何种技术确保事务的A ...

  7. 使用java连接MySQL数据库

    import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import com.mys ...

  8. Axis2使war包发布为WebService

    首先 吐槽下 Axis2的Eclipse插件.不好用,而且局限性大.并且添加包的过程...会及其痛苦.(懂的自然懂) 而且 发布的aar文件,不能解压缩重新打包再压缩...尝试过添加 jar包,但报错 ...

  9. sass在mac中安装

    $ curl -L https://get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm $ rvm -v $ rvm install 2.0 ...

  10. 带日期的bean转为json(bean->JSON)

    示例代码: JsonBean bean = new JsonBean();bean.setName("NewBaby");bean.setAge(1);bean.setBorn(n ...