知识大全 Java实现Comparable接口

Posted

篇首语:知识就是力量,时间就是生命。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java实现Comparable接口相关的知识,希望对你有一定的参考价值。

Java实现Comparable接口  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java lang Comparable接口中唯一的方法是pareTo() 在该方法中可以进行简单的相等比较以及执行顺序比较 接口实现框架如下 [java] view plaincopyprint?

  public class ComparableImpl implements Comparable<ComparableImpl>

  @Override public int pareTo(ComparableImpl o) // TODO Auto generated method stub return

  一个类实现了Comparable接口 则说明它的实例具有内在的排序关系 就可以跟多种泛型算法以及依赖于该接口的集合实现进行协作 依赖于比较关系的类包括有序集合类TreeSet和TreeMap 以及工具类Collections和Arrays 若一个数组中的元素实现了Comparable接口 则可以直接使用Arrays类的sort方法对这个数组进行排序 Java平台库中的所有值类(value classes)都实现了Comparable接口

  Comparable的规范说明如下 将当前这个对象与指定对象进行顺序比较 当该对象小于 等于或大于指定对象时 分别返回一个负整数 零或者正整数 如果由于指定对象的类型而使得无法进行比较 则抛出ClassCastException异常

  pareTo方法的实现必须满足如下几个限制条件 自反性 对称性 传递性和非空性

  一般来说 paraTo方法的相等测试应该返回与equals方法相同的结果 如果相同 则由pareTo方法施加的顺序关系被称为 与equals一致 如果不同 则顺序关系被称为 与equals不一致 如果一个类的pareTo方法与equals方法的顺序关系不一致 那么它仍然能正常工作 只是 如果一个有序集合包含了该类的实例 则这个集合可能无法遵循某些集合接口的通用约定 因为集合接口的通用约定是按照equals方法定义的 而有序集合使用了由pareTo施加的相等测试 下面是实现了Comparable接口的类 同时 该类还重写了equals和hashCode等方法 [java] view plaincopyprint?

  public abstract class ZLTextPosition implements Comparable<ZLTextPosition>

  public abstract int getParagraphIndex() public abstract int getElementIndex() public abstract int getCharIndex()

  public boolean samePositionAs(ZLTextPosition position) return getParagraphIndex() == position getParagraphIndex() && getElementIndex() == position getElementIndex() && getCharIndex() == position getCharIndex()

  @Override public int pareTo(ZLTextPosition position) final int p = getParagraphIndex() final int p = position getParagraphIndex() if (p != p ) return p < p ?

  final int e = getElementIndex() final int e = position getElementIndex() if (e != e ) return e < e ?

  final int c = getCharIndex() final int c = position getCharIndex() if (c != c ) return c < c ? return

  @Override public boolean equals(Object obj) if (this == obj) return true if (!(obj instanceof ZLTextPosition)) return false

  final ZLTextPosition position = (ZLTextPosition)obj return samePositionAs(position)

  @Override public int hashCode() return (getParagraphIndex() << ) + (getElementIndex() << ) + getCharIndex()

  @Override public String toString() return getClass() getName() + + getParagraphIndex() + + getElementIndex() + + getCharIndex()

cha138/Article/program/Java/hx/201311/26372

相关参考

知识大全 Comparable 接口和 Collection 接口分析

Comparable接口和Collection接口分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 mrico usb接口和mrico hdmi接口一样吗。数据线两者能否通用

mricousb接口和mricohdmi接口一样吗。数据线两者能否通用?接口不一样,micro微型的意思,中文过来就是微型的USB接口和微型的HDMI接口,microusb主要用于手机充电,3C产品充

知识大全 怎样设计合适的接口

  摘要我们在设计系统接口时经常会遇到这样的问题  我们的接口应该提供多少方法才合适?  我们的接口应该提供原子方法还是复合方法?  我们的接口是否应该封装(或者能否封装)所有的细节?  接口的设计需

知识大全 我家的电视没有HDMI接口也没有VGA,接口看了一下,只有什么USB接口要怎样才能和笔记本电脑连接

我家的电视没有HDMI接口也没有VGA,接口看了一下,只有什么USB接口要怎样才能和笔记本电脑连接  以下文字资料是由(本站网www.cha138.com)小编为大家搜集

知识大全 关于php 接口问题(php接口主要也就是运用curl,curl函数)

本篇文章是对php中的接口问题(php接口主要也就是运用curlcurl函数)进行了详细的分析介绍需要的朋友参考下   接口问题php调用接口最主要的就是使用curl抓取信息复制代码代码如下

知识大全 通过继承扩展接口

  利用继承技术可方便地为一个接口添加新的方法声明也可以将几个接口合并成一个新接口在这两种情况下最终得到的都是一个新接口如下例所示    //:HorrorShowjava  //Extendinga

高层建筑消防栓接口或软管接口的间距不应大于( )M。

高层建筑消防栓接口或软管接口的间距不应大于()M。A.30B.40C.50D.60【正确答案】A

高层建筑消防栓接口或软管接口的间距不应大于( )M。

高层建筑消防栓接口或软管接口的间距不应大于()M。A.30B.40C.50D.60【正确答案】A

知识大全 笔记本displayport接口连液晶电视hdmi接口,怎么连?

笔记本displayport接口连液晶电视hdmi接口,怎么连?需要购买一个minidisplayport转HDMI的转换器才能连接,具体连接方法如下:1、准备一个minidisplayport转HD

知识大全 我的显卡只有两个DVI接口,电视VGA,HDMI接口都有

求助:DVI显卡连接电视电脑,如何实现双屏同步!我的显卡只有两个DVI接口,电视VGA,HDMI接口都有!  以下文字资料是由(全榜网网www.cha138.com)小编