语法:
class 比较器名 implements Comparator
重写 int compare(Object o1, Object o2)

import java.util.*;class comparatorDemo implements Comparator {public int compare(Object o1, Object o2) {String a, b;a = (String) o1;b = (String) o2;return b.compareTo(a); // 从大到小排序// return a.compareTo(b); // 从小到大排序}
}// 以有序set、有序map为例
class test6{public static void main(String[] args){TreeSet ts = new TreeSet(new comparatorDemo());//传入比较器ts.add("C");ts.add("A");ts.add("D");Iterator it = ts.iterator();while(it.hasNext()){Object o = it.next();System.out.println(o);} // D C AString a = "Aaaab", b = "A";System.out.println(a.compareTo(b)); // 4, a > b 正数TreeMap tm = new TreeMap(new comparatorDemo());tm.put("Michael", 18);tm.put("Ming", 18);tm.put("ABC", 19);Set set = tm.entrySet();Iterator it1 = set.iterator();while(it1.hasNext()){Object o = it1.next();System.out.println(o);}// Ming=18// Michael=18// ABC=19}
}

Java 自定义排序 Comparator相关推荐

  1. Java学习(90)Java集合排序——Comparator接口介绍、案例:对宠物猫分别按名字升序、年龄降序进行排列

    Java集合排序--Comparator接口介绍.案例:对宠物猫分别按名字升序.年龄降序进行排列 Comparator接口介绍 1. Comparator接口: 2. Comparator接口中的co ...

  2. Java 自定义排序

    文章目录 数组排序 包装类排序 Java 自定义排序 1.实现 Comparable 接口并重写 compareTo() 方法 2.实现 Comparator 接口,重写 compare() 方法. ...

  3. java自定义排序函数_JAVA中sort函数的 自定义排序 cmp函数的写法 【java】【cmp】...

    查了很多博客,了解挺多有关cmp函数的问题.所以在这里来总结一下写法.. 我们通常可以用这个cmp函数来改变Arrays.sort()函数的默认排序方法.这里我们以升序排序为例. 基本方法 int c ...

  4. JAVA——自定义排序(实现Comparable接口)

    Arrays.sort()方法可对任何实现compareble接口的对象数组排序. 源代码 EmployeeSortTest.java import java.util.*;/*** This pro ...

  5. java排序接口_详解JAVA使用Comparator接口实现自定义排序

    1.原则 Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法: int compare(Object o1, Object o2) 返回一个基本类型的 ...

  6. java list集合自定义排序_Java 通过 Comparator comparing 对 list 自定义 排序

    摘要: 在日常开发中,经常会用到排序算法,这里记录下日常使用比较多的排序方法,其中包括按指定指定:正序.倒序排序,还有按自定义字段排序的方法,方便日后查看: 一:按指定字段排序,默认倒序,如下写法: ...

  7. java hashmap 无序,【Java】HashMap自定义排序

    HashMap中的对象根据成员进行自定义排序 Map是Java中最常用的存储对象的集合类之一,存储在HashMap中的对象在取出时是无序的,下文以示例介绍了如果对HashMap中存储的对象根据成员进行 ...

  8. Java比较同一map是否相同_Java 中HashTable、HashMap、TreeMap三者区别,以及自定义对象是否相同比较,自定义排序等...

    /* Map集合:该集合存储键值对.一对一对往里存.而且要保证键的唯一性. Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.效率低.基本已废 ...

  9. java 怎么自定义排序_Java如何实现List自定义排序

    Java如何实现List自定义排序,自定义,即为,详细内容,相关文章,更多关于 Java如何实现List自定义排序 易采站长站,站长之家为您整理了Java如何实现List自定义排序的相关内容. 实体类 ...

最新文章

  1. 每日一皮:史上最直观的单向循环链表,还不懂算我输!
  2. android 取消和svn关联_Android Studio如何取消与SVN的关联
  3. 树状数组模板1——单点修改区间查询
  4. Redis中bitmap的妙用
  5. Exchange 默认数据库删除问题
  6. 软件开发中的几种数据交换协议
  7. python cpython关系_第3篇:CPython内部探究:PyASCIIObject的初始化
  8. 总结 Visual Studio 2019 发布以来 XAML 工具的改进
  9. mysql memcached java_java缓存技术memcached实例
  10. 计算机用户登录,计算机术语:密码、用户、登录
  11. 联发科推出5G处理器天玑720 采用台积电7nm工艺制造
  12. oracle热点表online rename
  13. 微型计算机的主频很大程度上决定了计算机的运行速度,它是指__ _.,计算机试卷4...
  14. CSS小技巧---半透明边框
  15. 毫秒级超低延时直播产品实测(PRTC直播/webRTC直播)
  16. 计算机不工作时硬盘自动响,电脑硬盘不规律响的解决方法
  17. 【Netty-进阶】学习笔记
  18. Activiti工作流之任务的运行/查询/完成
  19. [UE4] LogicDriver状态机盒体颜色切换简单案例
  20. App Store 内购项目配置

热门文章

  1. python连接sql数据库_python连接sql server数据库实现增删改查
  2. Django使用n内置模块发送HTML格式的邮件
  3. 华为软件研发面试题1
  4. 火狐浏览器中打开java_将Firefox浏览器嵌入Java Swing中
  5. Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案...
  6. 2017 实习面试问题总结(阿里、头条、美团、cvte、乐视、华为)
  7. day 34 守护线程守护进程 互斥锁线程 信号量 生产者消费者
  8. [笔记] FireDAC DataSet 导入及导出 JSON
  9. 【翻译】在Ext JS中创建特定主题的重写
  10. 海量数据库解决方案2011030101