zoukankan      html  css  js  c++  java
  • Java中的Comparable接口和Comparator接口

    Comparator位于包java.util下,比较器,是在集合外部定义排序。
    Comparable位于包java.lang下,代表当前对象可比较的,是在集合内部实现排序。

    Comparable代表一个对象内部支持排序(比如String类,Integer类,内部实现了Comparable接口) Collections.sort(list<T>)中,T必须实现Comparable接口。

    Comparable只需实现compareTo()函数即可

    	public int compareTo(Object arg0) {
    		// TODO Auto-generated method stub
    		return 0;
    	}
    

     

    而 Comparator 代表着一种策略模式(strategy design pattern),就是不改变对象自身,而用一个策略对象(strategy object)来改变它的行为。比如对List<Integer>按照绝对值排序。Collections.sort(list<T>,comparator)。

    		Collections.sort(list, new Comparator<Node2>() {
    			public int compare(Node2 o1, Node2 o2) {
    				return 0;
    			}
    			//equals用于判断两个比较器是否相等,由于Object类有默认equals,因此可以不写equals
    			public boolean equals(Object o) {
    				return false;
    			}
    		});
    

     因此可以看到,Comparator接口更加灵活!

  • 相关阅读:
    vue+elementUI实现权限的部门管理
    vue+elementUI实现权限的部门管理
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    20 种最奇怪的编程语言
    WinForm导出文件
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/tonyluis/p/5774871.html
Copyright © 2011-2022 走看看