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

Posted 元素

篇首语:黑暗带来恐惧。知识可以点亮你,驱逐恐惧。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Comparable 接口和 Collection 接口分析相关的知识,希望对你有一定的参考价值。

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

     现看一下该接口的定义:  public interface Comparable  public int pareTo(Object o);    该接口定义类的自然顺序 实现该接口的类就可以按这种方式排序   一般要求:  e equals((Object)e )和pareTo((Object)e )== 具有相同的值   这样的话我们就称自然顺序就和equals一致   这个接口有什么用呢?  如果数据或者List中的元素实现了该接口的话 我们就可以调用Collections sort或者Arrays方法给他们排序     如果自然顺序和equals不一致的话 如果出现在Sorted Map和Set里面   就会出现预想不到的逻辑错误 可能你调用add的时候添加不了 而集合里面确没有这个元素 具体的讨论要接口哈希表的应用        java中定义了很多集合类(也叫聚集或者容器) Collection是所有集合类的父接口 Collection接口定义了 方法 没有任何常量定义 这里简要说明这些方法   size()  获得集合中元素的个数 如果个数大于Integer MAX_VALUE 返回Integer MAX_VALUE    isEmpty()  如果不含任何元素 返回true  ntains(Object o)  如果包含指定元素 返回true  erator()  返回迭代器   toArray()  返回数组Object[]   toArray(Object[] a)  返回数组Object[] 如果a可以包含集合中的元素 返回a 否则生成一个新的数组    add(Object o)  添加一个元素 成功返回true   remove(Object o)  删除一个数据 成功返回true   addAll(Collection c)  添加包含在集合c中的所有元素 如果集合有改变 返回true   removeAll(Collection c)  删除包含在集合c里的所有元素 如果集合有改变 返回true   retainAll(Collection c)  删除不包含在集合c里的所有元素 如果集合有改变 返回true  ntainsAll(Collection c)  如果包含集合c里的所有元素 返回true   clear()  清除集合 调用后isEmpty应该为true   equals(Object c)  判断是否相等   hashCode()  返回哈希值    这里有几点要注意的地方:   修改集合的时候如果集合有变化就返回true 这个定义是不严格的 对于单条纪录来说(add remove)  如果添加或者删除了指定的对象 返回true 对于add操作 如果返回false表示集合已经存在相同的对象而且不  允许重复 对于remove操作 如果返回false表示集合中并没有这个对象 对于批量操作就更不严谨了 如果调用  addAll(Collection c) c中有 条纪录 而结果只添加了一条纪录也返回true 但是集合中肯定已经含有其他的  那些元素了 否则就应该抛出一个异常 也就是说如果返回true的话 containsAll(Collection c)应该为true    toArray(Object[] a)方法到底有什么呢?因为toArray()方法需要重新生成一个数组 虽然Collection内部有  这种数组结构 但是必须得生成一个新的数组 而不能直接返回内部的数组 那样的话Collection就不安全了   toArray(Object[] a)利用现成的a数组(如果可以容纳的话) 而不需要重新分配空间    equals()和hashCode()方法有点多余 因为在Object中已经定义了这两个方法 任何类都继承Object 所以显得  多余 但是加上也无可厚非    在Java类库中 没有直接继承Collection的类 都是继承Collection的子接口 比如List Set Map等 而且都不相交   也就是不可以既是List又是Set      cha138/Article/program/Java/hx/201311/26366

相关参考

知识大全 如何给一个对象排序

  当我们排序的对象不止是简单的数据类型的时候  我们可以通过实现Comparable和Comparator接口来完整对对象的排序  Comparable和Compartor的区别?  Compara

知识大全 比较comparable和Comparator

比较comparable和Comparator  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Com

知识大全 Java学习中的Iterator&Comparable

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

知识大全 空接口和奇怪的接口方法

  开发控件时常常会遇到一些需要继承的接口但却不需要实现什么方法因为这个接口是空的  接口只包含只有方法属性索引器(有参属性)事件四种成员接口可以提供一组行为和契约当继承一个接口时你需要实现实现接口内

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

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

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

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

知识大全 webservice和软件接口有什么区别和联系吗

webservice和软件接口有什么区别和联系吗?webservice(SOAP)与HTTP接口的区别什么是webservice?soap请求是HTTPPOST的一个专用版本,遵循一种特殊的xml消息

知识大全 usb接口插手机和u盘都没反应是怎么回事

usb接口插手机和u盘都没反应是怎么回事有没有换主机后面的USB接口可以试试(因为主机前面的接口是机箱线链接主板的,后面的接口是由主板直接链接的,这样可以排除机箱连接线的问题)如果还是不行先考虑是不是

知识大全 移动和联通接口 发送短信

   usingSystem;   usingSystemData;   usingSystemConfigu

知识大全 Java抽象类和接口的比较

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