1.定义:Comparator是外部比较器,用于比较来对象与对象之间的,两个对象进行比较,多用于集合排序,而Comparable可以认为是一个内比较器,根据对象某一属性进行排序的

2.使用方法

1)定义节点信息

class Node{int x;int y;Node(int x,int y){this.x=x;this.y=y;}@Overridepublic String toString() {return "Node{" +"x=" + x +", y=" + y +'}';}
}

2)比较器方法

Collections.sort(list, new Comparator<Node>() {/**o1-o2为升序序排列,o2-o1为降序排列,若具体到某一字段,则根据该字段进行排列*/@Overridepublic int compare(Node o1, Node o2) {if (o1.x==o2.x) //若x属性相等,根据y来升序return o1.y-o2.y;return o1.x-o2.x;//x属性不相等,根据x来升序排列}
});

3)完整代码


import java.util.*;class Node{int x;int y;Node(int x,int y){this.x=x;this.y=y;}@Overridepublic String toString() {return "Node{" +"x=" + x +", y=" + y +'}';}
}
public class Main {public static void way(int num[],int n){}public static void main(String[] args) {Node node4=new Node(2,2);Node node3=new Node(2,1);Node node1=new Node(1,2);Node node2=new Node(1,1);Node node5=new Node(3,1);Node node6=new Node(3,2);ArrayList<Node> list=new ArrayList<>();list.add(node1);list.add(node2);list.add(node3);list.add(node4);list.add(node5);list.add(node6);Collections.sort(list, new Comparator<Node>() {/**o1-o2为升序序排列,o2-o1为降序排列,若具体到某一字段,则根据该字段进行排列*/@Overridepublic int compare(Node o1, Node o2) {if (o1.x==o2.x) //若x属性相等,根据y来升序return o1.y-o2.y;return o1.x-o2.x;//x属性不相等,根据x来升序排列}});for (Node node:list) {System.out.println(node.toString());}}
}

3.结果如下

Java 的Comparator比较器用法相关推荐

  1. java comparator相等_菜鸡的Java笔记 comparator 比较器

    1.数组操作类: Arrays 2.两种比较器的使用: Comparable Comparator 3.实现二叉树算法 content (内容) 1.数组操作类: Arrays Arrays 类一早就 ...

  2. 【java】Comparator的用法

    转载请标明出处:http://blog.csdn.net/u012250875/article/details/55126531 1.为什么写? comparator 是javase中的接口,位于ja ...

  3. comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...

    资料下载请点我(第4次更新) 后台回复关键词:"加群",拉你进入芯片电子之家的家人群 关于今日推文 运放的电压追随电路,如图1所示,利用虚短.虚断,一眼看上去简单明了,没有什么太多 ...

  4. comparator比较器用法_Python学习:好像很少人知道 Python iter() 的另外一个用法?...

    在前面的一期Python学习教程有跟大家介绍过关于序列.可迭代对象.迭代器.生成器的概念,其中有提到过,如果实现了 _iter_() 和 _next_() 就是生成器,同时验证可迭代对象最好的方法是 ...

  5. Java中Comparator比较器的使用以及使用lamba简化代码

    代码例子: /*** 测试Comparator*/@Testpublic void test17() {//原始方法Comparator<Integer> comparator = new ...

  6. comparator比较器用法_汽车三元催化器堵塞咋办?不拆不换,用这招清理干净、动力猛如虎...

    如今汽车的价格是不断走低,很多人也能如愿成为有车人群.如今国庆假期即将到来,在国庆前买了车的朋友就能在长假里开着汽车出去好好游玩一番,这过程是想想都觉得美妙.不过作为车主,汽车不单要懂得开,也要学会保 ...

  7. java.util.Comparator的用法

    public class MyComparator implements Comparator<Integer>{ public MyComparator(){ } //若返回正数,则代表 ...

  8. java积累(一)------后端---Comparator比较器的用法

    对数组或者List列表,或者Map(非hash)等排序是我们经常使用的一种处理数据的手段.Comparator接口是java中很方便的一个接口. 我们只需要重写compare方法即可实现排序. int ...

  9. java中sort函数comparator的使用_Java Comparator comparingInt()用法及代码示例

    compareInt(java.util.function.ToIntFunction)方法接受一个函数作为参数,从类型T中提取一个int排序键,并返回一个与该排序键进行比较的Comparator.返 ...

最新文章

  1. 网站ui的配色有哪些需要注意的?
  2. Json返回时间中出现乱码问题的两种解决方法
  3. Py之PyAutoGUI:python库之PyAutoGUI的简介、安装、使用方法
  4. [转]JS中判断鼠标按键判断
  5. MySQL逻辑运算符的使用
  6. msg计算机指令怎样用,WIN7里使用msg命令发送消息失败
  7. 轻松实现web高可用!(keepalived实战讲解)
  8. cdn是什么和作用有些
  9. 计算机考试辽宁2020,报名辽宁2020年9月计算机考试流程
  10. stm32F4修改时钟频率,更换为8MHz晶振
  11. 施耐德EVlink 电动车充电站有新漏洞,可导致电动车遭劫持
  12. win 10+ iis 10 部署.net core 1.1 web api
  13. 深入学习c++--智能指针(二) weak_ptr(打破shared_ptr循环引用)
  14. jsessionid和jwt_Jsessionid和cookie的区别与联系
  15. 犯了这15个错误,你可能会上征信“黑名单”
  16. Linux查询系统上次启动时间last reboot、上线时间uptime
  17. 读书笔记 | 4.3 基于征信系统的征信基础产品
  18. 可穿戴设备,朝“超人”迈进
  19. Java微信公众平台开发之群发接口(高级群发)
  20. 【差旅随行APP】技术服务支持

热门文章

  1. linux centos 回收站,centos rm 回收站
  2. python决策树怎么选择_【机器学习+python(8)】分类决策树的介绍与实现
  3. 【数据挖掘实例】构建Xgboost模型,在电力用户的95598工单数据中的电费敏感用户预测(高敏用户模型)
  4. 八十、归并排序及其分而治之思想
  5. 线性Transformer应该不是你要等的那个模型
  6. 基于深度学习的多目标跟踪算法(上):端到端的数据关联
  7. 从局部脑到全脑:时空域分层神经网络脑电情绪识别模型
  8. 岗位推荐 | 腾讯AI Lab招聘计算机视觉方向实习生
  9. 云计算(Cloud Computing)的前世今生
  10. 堆晶结构_内蒙古苏尼特左旗地区堆晶角闪辉长岩的发现及地质意义