2019独角兽企业重金招聘Python工程师标准>>>

解读:一个类如果实现了Comparable接口,则具有了内在排序的特性,也就可以对两个对象进行比较了,同时依赖于该接口排序的集合(例如Set)就能按照类的排序规则排序了。因此任何一个值类都最好实现Comparable接口(java自带的所有值类都已经实现了Comparable)。

关于实现的compareTo方法需要规定的约束,这里不详细说明了,用文中的一句话归纳:任何合理的顺序关系都可以满足compareTo方法的约定。

  • 这里有几点要注意:

    • 不要对一个已经实现了comparable接口的类增加值组件,因为这可能会破坏compareTo比较的规则,正如equals也是一样。
    • compareTo相等的规则要尽量保持和equals一致。
    • 如果一个类有多个关键的域,要仔细考虑用什么样的方法能最简单地实现比较的规则。

转载于:https://my.oschina.net/silence88/blog/828935

effective java读书笔记12:考虑实现Comparable接口相关推荐

  1. Java:Effective java学习笔记之 考虑实现Comparable 接口

    Java 考虑实现Comparable 接口 考虑实现Comparable 接口 1.Comparable接口 2.为什么要考虑实现Comparable接口 3.compareTo 方法的通用约定 4 ...

  2. Effective Java读书笔记---四、类和接口

    四.对于所有对象都通用的方法 15.使类和成员的可访问性最小化 区分一个组件设计得好不好,唯一重要的因素在于,它对于外部的其他组件而言,是否隐藏了其 内部数据和其他实现细节 . 信息隐藏 -----& ...

  3. Effective Java读书笔记(二)

    Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...

  4. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  5. Effective Java 读书笔记(一)

    前言: 开个新的坑位,<effective java>的读书笔记,之后有时间会陆陆续续的更新,读这本书真的感触满多,item01和item02就已经在公司的项目代码中看到过了.今天这篇主要 ...

  6. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

  7. Effective Java读书笔记七:泛型(部分章节需要重读)

    第23条:请不要在新代码中使用原生态类型 从java1.5发行版本开始,Java就提供了一种安全的替代方法,称作无限制的通配符类型,如果要使用范型,但是确定或者不关心实际的参数类型,就可以用一个问号代 ...

  8. Effective Java读书笔记六:方法

    第38条:检查参数的有效性 绝大多数方法和构造器对于传递给它们的参数值都会有些限制.比如,索引值必须大于等于0,且不能超过其最大值,对象不能为null等.这样就可以在导致错误的源头将错误捕获,从而避免 ...

  9. Effective Java读书笔记五:异常

    第57条:只针对异常的情况才使用异常 异常是为了在异常情况下使用而设计的,不要将它们用于普通的控制流,也不要编写迫使它们这么做的API. 下面部分来自:异常 如果finally块中出现了异常没有捕获或 ...

  10. Effective Java读书笔记三:创建和销毁对象

    第1条:考虑用静态工厂方法代替构造器 对于类而言,为了让客服端获得它的一个实例最常用的的一个方法就是提供一个公有的构造器.还有一种方法,类可以提供一个公有的静态工厂方法(static factory ...

最新文章

  1. ajax传递对象数组
  2. Unix和Linux的区别和联系
  3. HDU -2243 考研路茫茫——单词情结(AC自动机+矩阵快速幂)
  4. oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
  5. python close_wait_TCP time_wait close_wait问题(可能是全网最清楚的例子)
  6. 画数轴的步骤_上分助手北师大数学七年级上册第二章有理数第二节数轴详细拆解...
  7. STL源码剖析(一)
  8. 01 安装STEP7软件和USB驱动
  9. 软考_高级《系统分析师》考试大纲
  10. Science子刊:母亲的身体气味增强了婴儿和成人的脑-脑同步
  11. [转]经济学金融学书籍推荐
  12. postman interceptor抓取cookie
  13. 《调研报告》:黑灰产哄抢消费券的两种方式
  14. 通达信量化接口主力进出指标分析
  15. 2022年全球与中国激光预警系统市场现状及未来发展趋势
  16. 【CVPR 2020】蒸馏篇(四):Online Knowledge Distillation via Collaborative Learning
  17. Codeforces-1008A - Romaji - 水题
  18. 义乌中级职称还用计算机吗,2021浙江职称,杭州职称,义乌职称评审改了哪些方面?别走弯路!...
  19. php中pattern以a或A为开头,shell基础六和七:执行顺序(||及,{}及())及正则表达式...
  20. 高通骁龙865之camera性能深度分析(一)

热门文章

  1. 如何将驱动程序静态编译进内核
  2. 互联网小团队创业 第三集 创业准备易犯的错误 汪华
  3. Python3 - 字符串
  4. windows C++删除非空文件夹
  5. Windows 10 + kali Linux 双系统安装教程(详细版)
  6. 2018.10.24-day3 python总结
  7. eclipse 闪退原因
  8. spring boot 视图层(JAVA之学习-2)
  9. 今天写的一个导出html页面的过程
  10. 最近学习 variant configuration