文档章节

《Effective JAVA学习笔记》之 compareTo()

十一11
 十一11
发布于 2016/02/15 16:11
字数 170
阅读 96
收藏 0
class Person implements Comparable<Person> {
  String firstName;
  String lastName;
  int birthdate;
 
  // Compare by firstName, break ties by lastName, finally break ties by birthdate
  public int compareTo(Person other) {
    if (firstName.compareTo(other.firstName) != 0)
      return firstName.compareTo(other.firstName);
    else if (lastName.compareTo(other.lastName) != 0)
      return lastName.compareTo(other.lastName);
    else if (birthdate < other.birthdate)
      return -1;
    else if (birthdate > other.birthdate)
      return 1;
    else
      return 0;
  }
}
  • 总是实现泛型版本 Comparable 而不是实现原始类型 Comparable 。因为这样可以节省代码量和减少不必要的麻烦。

  • 只关心返回结果的正负号(负/零/正),它们的大小不重要。

  • Comparator.compare()的实现与这个类似。

  • 参考:java.lang.Comparable


© 著作权归作者所有

十一11
粉丝 6
博文 80
码字总数 19784
作品 0
杭州
私信 提问
加载中

评论(0)

Effective Java读书笔记完结啦

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

圣骑士wind
2019/05/06
0
0
Java中的比较器Comparable、Comparator

参考博客:java学习笔记13--比较器(Comparable、Comparator) 在Java代码中,我们常常会面临需要对集合进行排序的情况,这种情况下我们需要手动的定义Java比较器,告诉程序两个对象如何比较大...

osc_dg86vzp6
2019/11/04
2
0
Java的Comparable接口的一个陷阱

Java的Comparable接口提供一个对实现了这个接口的对象列表进行排序的办法。原始的排序对于简单的对象来说具有意义,但是当我们面对复杂的面向对象的业务逻辑对象时,事情变得复杂的多。从业务...

王振威
2012/05/06
5.1K
7
Effective Java 第三版笔记(目录)

《Effective Java, Third Edition》一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至...

虾皮
2018/04/10
0
0
【从零开始学Java笔记】为什么选择Java(学习资料分享:java四大名著+视频)

大家可以关注作者的账号,关注从零开始学Java笔记文集。也可以根据目录前往作者的博客园博客进行学习。本片文件将基于黑马程序员就业班视频进行学习以及资料的分享,并记录笔记和自己的看法。...

朱李洛克
04/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zookeeper实现分布式锁总结,看这一篇足矣(设计模式应用实战)

zk实现分布式锁纵观网络各种各样的帖子层出不穷,笔者查阅很多资料发现一个问题,有些文章只写原理并没有具体实现,有些文章虽然写了实现但是并不全面 借这个周末给大家做一个总结,代码拿来...

osc_75pcgicm
49分钟前
20
0
163邮箱配置imap和smtp,隐藏的设置

http://config.mail.163.com/settings/imap/index.jsp?uid=XXXXX@163.com,这是一个隐藏的设置,要到这里配置才能用163的imap或者pop...

bengozhong
50分钟前
22
0
Python可变对象和不可变对象

Python中一切皆对象,每个对象都有其唯一的id,对应的类型和值,其中id指的是对象在内存中的位置。根据对象的值是否可修改分为可变对象和不可变对象。其中, 不可对象包括:数字,字符串,t...

osc_pnyuctmm
51分钟前
20
0
数据库垂直拆分 水平拆分

1 数据库拆分 当我们使用读写分离、缓存后,数据库的压力还是很大的时候,这就需要使用到数据库拆分了。 数据库拆分简单来说,就是指通过某种特定的条件,按照某个维度,将我们存放在同一个数...

努力的学渣
52分钟前
26
0
微信小程序连接低功率蓝牙控制单片机上硬件设备

1.软件部分介绍   微信小程序是一种新的应用,用户不需要下载应用只用通过扫二维码或者打开链接就能使用,使用完后不需要卸载,直接关闭就行了。微信在2017年初推出微信小程序开发环境。任...

osc_uxgfefy0
53分钟前
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部