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接口更加灵活!

  • 相关阅读:
    [Noip2017]逛公园
    [NOI2005]瑰丽华尔兹
    codeforces 558E A Simple Task
    bzoj1812 riv(树形背包)
    bzoj 1009 GT考试
    bzoj1030 文本生成器 Trie图+dp
    bzoj1500 维修数列(splay)
    [NOI2008]假面舞会
    测试用例的基本知识
    使用Xmind编写测试用例
  • 原文地址:https://www.cnblogs.com/tonyluis/p/5774871.html
Copyright © 2011-2022 走看看